我尝试过的:
1)将私钥从本地计算机复制到服务器并使用它进行克隆:
- name: clone repo
sudo: yes
git: repo={{ app_repo }} dest={{ app_repo_dir }} accept_hostkey=true key_file={{ssh_key}} version=master force=yes
Run Code Online (Sandbox Code Playgroud)
但它挂起了.据我所知,这个问题发生'因为密钥有密码.
2)ForwardAgent在ansible.cfg中使用:
[ssh_connection]
ssh_args = -o ForwardAgent=yes
Run Code Online (Sandbox Code Playgroud)
但是为了连接到服务器,我使用的不是标准的ssh 22端口.
如何git clone在Ansible中为密钥任务设置密码?或者使用Ansible克隆远程存储库的任何其他方法?
PS是的,我可以尝试从密钥中删除密码.但安全方面......
〜/ .ssh /配置:
主机 canada.host.xxxx
主机名 canada.host.xxxx
端口 2233
用户访客
IdentityFile ~/.ssh/id_rsa.special
将私钥从本地计算机复制到服务器并使用它进行克隆:
- 名称:克隆存储库 sudo:是 git:repo={{ app_repo }} dest={{ app_repo_dir }} Accept_hostkey=true key_file={{ssh_key}}
这是将私钥从本地计算机复制到服务器并使用它进行克隆:
- name: Put artifact to target
sudo: yes
copy: src="{{ app_repo_dir }}" dest="{{ app_repo_dir }}"
- name: clone repo
sudo: yes
git: repo={{ app_repo }} dest={{ app_repo_dir }} accept_hostkey=true key_file={{ssh_key}} version=master force=yes
Run Code Online (Sandbox Code Playgroud)
PS:也许你应该使用local_action?
ansible-playbook -vvv 会告诉你问题