我正在尝试在使用私有仓库中的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
现在这个命令也开始挂起。
答案 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/null
或ansible_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