Git克隆挂在Ansible中

时间:2016-01-16 01:17:13

标签: 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

但它挂了。据我所知,这个问题发生'因为密钥有密码。

2)在 ansible.cfg

中使用ForwardAgent
[ssh_connection]
ssh_args = -o ForwardAgent=yes

但是对于与服务器的连接,我使用的不是标准的ssh 22端口。

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

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

1 个答案:

答案 0 :(得分:1)

  1. 〜/ .ssh / config:

    主持人canada.host.xxxx

    HostName canada.host.xxxx

    港口2233

    用户访客

    IdentityFile~ / .ssh / id_rsa.special

  2. 2。
      

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

         
        
    • name:clone repo sudo:yes git:repo = {{app_repo}} dest = {{app_repo_dir}} accept_hostkey = true key_file = {{ssh_key}}
    •   

    这是Copy private key from local machine to server并用它克隆:

    - 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
    

    PS: 也许你应该使用local_action

    ansible-playbook -vvv会告诉你问题