Git克隆挂在Ansible中

Suv*_*ica 6 git ssh ansible

我尝试过的:

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)ForwardAgentansible.cfg中使用:

[ssh_connection]
ssh_args = -o ForwardAgent=yes
Run Code Online (Sandbox Code Playgroud)

但是为了连接到服务器,我使用的不是标准的ssh 22端口.

如何git clone在Ansible中为密钥任务设置密码?或者使用Ansible克隆远程存储库的任何其他方法?

PS是的,我可以尝试从密钥中删除密码.但安全方面......

Val*_*yov 1

  1. 〜/ .ssh /配置:

    主机 canada.host.xxxx

    主机名 canada.host.xxxx

    端口 2233

    用户访客

    IdentityFile ~/.ssh/id_rsa.special

  2. 2.

将私钥从本地计算机复制到服务器并使用它进行克隆:

  • 名称:克隆存储库 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 会告诉你问题