Ansible 1.6,在使用ssh代理转发克隆git repo时遇到问题

时间:2014-06-17 11:14:32

标签: ansible

我在使用ssh转发克隆来自Git的回购时遇到问题。这是我的设置:

- name: Setup/pull the Git repo
  git: repo={{ git_repo }} dest={{ git_root }} update=yes accept_hostkey=yes
  when: setup_git_repo
  tags: git deploy
  #git_repo = git@github.com:my_name/repo.git

我从-vvvv

获得此调试
<x.x.x.x> ESTABLISH CONNECTION FOR USER: ubuntu
<x.x.x.x> REMOTE_MODULE git repo=git@github.com:name/repo.git dest=/webapps/example-app/example update=yes accept_hostkey=yes
<x.x.x.x> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ForwardAgent=yes', '-o', u'IdentityFile="/Library/keys/aws-key.pem"', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=ubuntu', '-o', 'ConnectTimeout=10', 'x.x.x.x', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 && echo $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868'"]      

我可以看到身份文件不是我想要使用的id,我的git键位于我运行Ansible的机器上的〜/ .ssh /。我如何告诉它使用正确的密钥或为什么不尝试其他密钥而不是只悬挂?

我运行Ansible并将'private_key_file'设置为aws键。也许这就是问题?

通过使用git模块的key_file变量并将我的git私钥上传到我正在配置的服务器,我可以看到这是如何实现的。我不想这样做,我想从我的localhost转发ssh。

有可能吗?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

好的,我终于解决了这个问题。

首先检查ssh代理转发是否在没有Ansible的情况下工作。这个列表是一个非常好的资源 - https://help.github.com/articles/using-ssh-agent-forwarding

之后,我只是将它添加到anisble.cfg中,一切都按预期工作。

sudo_flags=-HE