无主模式下的ansible git任务在git clone在远程服务器上工作时失败
我正在使用Ansible克隆远程服务器上的存储库: 此命令适用于远程服务器:无主模式下的ansible git任务在git clone在远程服务器上工作时失败,git,github,ssh,ansible,Git,Github,Ssh,Ansible,我正在使用Ansible克隆远程服务器上的存储库: 此命令适用于远程服务器:git clonegit@github.com:ansible/ansible示例。git 但是,此任务失败: - name: clone git repo git: repo=git@github.com:ansible/ansible-examples.git dest=/root/ansible-examples clone=yes 具有以下输出: 失败!
git clonegit@github.com:ansible/ansible示例。git
但是,此任务失败:
- name: clone git repo
git: repo=git@github.com:ansible/ansible-examples.git
dest=/root/ansible-examples
clone=yes
具有以下输出:
失败!=>{“changed”:false,“cmd”:/usr/bin/git ls remote'-h refs/heads/HEAD”,“failed”:true,“msg”:“权限被拒绝”
(公钥)。\r\n致命:无法从远程
存储库。\n\n请确保您具有正确的访问权限
权限\n且存储库存在。“,“rc”:128,“stderr”:“权限”
拒绝(公钥)。\r\n致命:无法从远程
存储库。\n\n请确保您具有正确的访问权限
权限\n且存储库存在。\n,“标准输出”:“标准输出行”:
[]}
我有一个类似的情况(ssh和克隆可用于CLI,但不能用于任务),我可以在远程服务器上克隆私有git repo(使用ssh转发),但在执行相同任务时失败
我的ansible.cfg
中还包含以下内容:
[defaults]
transport = ssh
# deprecation_warnings = False # In case it matters get the following [DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and make sure become_method is 'sudo' (default).
[ssh_connection]
ssh_args = -o ForwardAgent=yes
注意:我正在从我的OSX笔记本电脑使用ansible,连接到Ubuntu遥控器。版本为ansible 2.1.0.0
如何使此任务克隆git存储库
编辑
不确定这意味着什么,但以下操作也不起作用(在控制台中也是如此):
另一次尝试:
shell: git clone git@github.com:ansible/ansible-examples.git /root/ansible-examples
失败!=>{“更改”:true,“cmd”:“git克隆”
git@github.com:ansible/ansible-examples.git/root/ansible-examples“,
“delta”:“0:00:00.693890”,“end”:“2016-06-08 20:57:47.505574”,
“failed”:true,“rc”:128,“start”:“2016-06-08 20:57:46.811684”,
“stderr”:“克隆到“/root/ansible examples”…\n许可被拒绝
(公钥)。\r\n致命:无法从远程
存储库。\n\n请确保您具有正确的访问权限
权限\n且存储库存在。“,“标准输出”:“,“标准输出行”:[],
“警告”:[“考虑使用git模块而不是运行git”]}
事实证明,我在CLI和ansible中没有相同的ssh用户。编辑主机文件修复了它:
特别是
ansible\u用户
和ansible\u连接
这可能会帮助其他人:的全局使用变成:yes
也是导致此类问题的常见陷阱。登录后,这将直接切换到root用户,因此密钥转发不会停留在新会话上。
shell: git clone git@github.com:ansible/ansible-examples.git /root/ansible-examples