通过ansible playbook安装私有宝石时捆绑安装挂起

时间:2015-11-03 22:11:14

标签: ruby-on-rails ruby ansible ansible-playbook

我正在尝试在使用私有仓库中的gem的远程主机上运行bundle install。任务挂起,因为它停止接受主机密钥,因为我无法在本地运行ansible playbook时手动接受远程主机上的密钥。

  

Playbook任务

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

如何通过远程主机上的密钥文件测试或添加github连接。

我还尝试通过ssh与github建立测试连接,在bundle install之前显式接受密钥。

  - name: test connection to git
    command: ssh -vvv git@github.co key_file=/home/ubuntu/.ssh/id_rsa accept_hostkey=yes

现在这个命令也开始挂起。

2 个答案:

答案 0 :(得分:1)

您可以将mfrmForm.OnUnload = "[Event Procedure]" 放入您的ansible游戏环境中。将其添加到您的游戏中以避免主机密钥检查。

export ANSIBLE_HOST_KEY_CHECKING=False

可以尝试的另一种方法是将基础严格密钥检查参数传递给ssh连接。参数为 - environment: ANSIBLE_HOST_KEY_CHECKING: False StrictHostKeyChecking=no。您可以查看ansible inventory ssh connection 并使用UserKnownHostsFile=/dev/nullansible_ssh_common_args

答案 1 :(得分: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