Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无主模式下的ansible git任务在git clone在远程服务器上工作时失败_Git_Github_Ssh_Ansible - Fatal编程技术网

无主模式下的ansible git任务在git clone在远程服务器上工作时失败

无主模式下的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 具有以下输出: 失败!

我正在使用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
具有以下输出:

失败!=>{“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