2015-11-03 2 views
4

Я пытаюсь запустить bundle install на удаленном хосте, который использует gem из частного репо. Задача зависает, потому что она перестает принимать ключ хоста, так как я не могу вручную принять ключ на удаленном хосте, когда я запускаю доступную загружаемую книгу локально.пучок установить повесить при установке частного gem через ansible playbook

Playbook задача

- name: bundle install 
    command: bundle install chdir={{ deploy_directory }} 

Как проверить или добавить соединение GitHub через ключевой файл на удаленном хосте.

Я также попытался явно принять ключ перед установкой пакета, установив тестовое соединение с github через ssh.

- name: test connection to git 
    command: ssh -vvv [email protected] key_file=/home/ubuntu/.ssh/id_rsa accept_hostkey=yes 

Теперь эта команда также повесилась.

+0

Является ли это для '' мерзавец: типа драгоценного камня ссылки? Стоит отметить, что частные репозитории GitHub работают как подходящие источники установки, и у меня никогда не было проблем с ними. – tadman

+0

@tadman да У меня есть git: 'type gem reference –

ответ

0

Как за @Ankit_Kukarni комментарий, я попытался добавить github.com в known_hosts файл и, наконец, он работал.

Добавление следующий фрагмент кода в сборник пьес

- name: ensure github.com is a known host 
    sudo: yes 
    lineinfile: 
     dest: /home/ubuntu/.ssh/known_hosts 
     create: yes 
     state: present 
     line: "{{ lookup('pipe', 'ssh-keyscan -t rsa github.com') }}" 
     regexp: "^github\\.com" 

Деталь объяснение можно найти here

1

Вы можете положить export ANSIBLE_HOST_KEY_CHECKING=False в свою незаменимую среду воспроизведения. Добавьте это в свою игру, чтобы избежать проверки ключа хоста.

environment: 
    ANSIBLE_HOST_KEY_CHECKING: False 

Еще один способ, которым можно судить, - передать строгие контрольные параметры ключа для вашего ssh-соединения. Параметры - StrictHostKeyChecking=no и UserKnownHostsFile=/dev/null. Вы можете проверить на ansible inventory ssh connection и использовать ansible_ssh_common_args или ansible_ssh_extra_args

+0

Я пробовал делать это, но как-то его не работает. Причина, по которой я заметил в подробном выводе, когда установка пула команд находится в запущенном состоянии, заключается в том, что проверка ключа хоста игнорируется только для подключения к удаленному серверу, но не при подключении к github для установки gem с ssh url –

+1

Попробуйте сделать это ' ssh-keyscan -H github.com >><ваш домашний каталог> /. ssh/known_hosts'. Эта команда в основном добавляет ключи github к вашему файлу известных хостов. Как только вы сделаете это, вам больше не придется спрашивать вас, пока не изменится отпечаток пальца –

Смежные вопросы