bundle install 在通过 ansible playbook 安装 private gem 时挂起
bundle install hang while installing private gem via ansible playbook
我正在尝试 运行 bundle install
在远程主机上使用来自私人仓库的 gem。任务挂起是因为它停止接受主机密钥,因为我无法像在本地 运行 本地运行 ansible playbook 那样手动接受远程主机上的密钥。
Playbook task
- name: bundle install
command: bundle install chdir={{ deploy_directory }}
如何通过远程主机上存在的密钥文件测试或添加 github 连接。
我还尝试通过 ssh 与 github 建立测试连接,从而在安装包之前明确接受密钥。
- name: test connection to git
command: ssh -vvv git@github.co key_file=/home/ubuntu/.ssh/id_rsa accept_hostkey=yes
现在这个命令也挂了。
你可以把export ANSIBLE_HOST_KEY_CHECKING=False
放在你的ansible play环境中。将此添加到您的游戏中以避免主机密钥检查。
environment:
ANSIBLE_HOST_KEY_CHECKING: False
可以尝试的另一种方法是将底层的严格密钥检查参数传递给您的 ssh 连接。参数是 - StrictHostKeyChecking=no
和 UserKnownHostsFile=/dev/null
。您可以检查 ansible inventory ssh connection 并使用 ansible_ssh_common_args
或 ansible_ssh_extra_args
根据 @Ankit_Kukarni
评论,我尝试将 github.com
添加到 known_hosts
文件中,最终成功了。
Adding following piece of code to the playbook
- 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
我正在尝试 运行 bundle install
在远程主机上使用来自私人仓库的 gem。任务挂起是因为它停止接受主机密钥,因为我无法像在本地 运行 本地运行 ansible playbook 那样手动接受远程主机上的密钥。
Playbook task
- name: bundle install
command: bundle install chdir={{ deploy_directory }}
如何通过远程主机上存在的密钥文件测试或添加 github 连接。
我还尝试通过 ssh 与 github 建立测试连接,从而在安装包之前明确接受密钥。
- name: test connection to git
command: ssh -vvv git@github.co key_file=/home/ubuntu/.ssh/id_rsa accept_hostkey=yes
现在这个命令也挂了。
你可以把export ANSIBLE_HOST_KEY_CHECKING=False
放在你的ansible play环境中。将此添加到您的游戏中以避免主机密钥检查。
environment:
ANSIBLE_HOST_KEY_CHECKING: False
可以尝试的另一种方法是将底层的严格密钥检查参数传递给您的 ssh 连接。参数是 - StrictHostKeyChecking=no
和 UserKnownHostsFile=/dev/null
。您可以检查 ansible inventory ssh connection 并使用 ansible_ssh_common_args
或 ansible_ssh_extra_args
根据 @Ankit_Kukarni
评论,我尝试将 github.com
添加到 known_hosts
文件中,最终成功了。
Adding following piece of code to the playbook
- 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