Ansible权限问题

时间:2017-02-23 16:53:52

标签: ansible

我在这个论坛上看到了很多,但没有一个答案对我有帮助。

我正在尝试运行一个ansible playbook,这在我的Debian PC上运行良好。现在我已经转移到Ubuntu 16.04它不能正常工作。我被许可拒绝公钥错误。

我假设这是因为我正在运行sudo ansible-playbook。

然后尝试使用我的root用户的公钥,而不是我试图回答的服务器上的公钥。

如何将ansible-playbook作为sudo运行但是使用当前用户的ssh密钥?

如果我以sudo身份运行,我会

fatal: [10.11.8.1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n", "unreachable": true}

如果我不以sudo身份运行,我会

fatal: [10.11.8.1]: FAILED! => {"failed": true, "msg": "Cannot write to ControlPath /home/chrisl/.ansible/cp"}

[警告]:无法创建重试文件'/home/chrisl/ansible/keys.retry'。 [Errno 13]许可被拒绝:你'/ home / chrisl / ansible / keys.retry'

我也试过这个,你可以看到会发生什么......

Picture Here with errors

1 个答案:

答案 0 :(得分:1)

在您的用户ansible-playbook以用户root运行第一个命令chris之后,该执行左(创建)属于用户root下的文件chris的主文件夹。然后下次运行,因为用户chris无法修改属于root的文件。

你应该做的是:

  • 确定您希望/需要使用哪种ssh方法 - ssh-agent或无密码默认ssh密钥,b / c第1个命令因密钥问题而失败。你也可以传递参数--private-key=/path/to/key,如果它是无密码的。
  • 修复:当用户root使/home/chris下的所有文件属于用户chris及其默认组:sudo chown -R chris:chris /home/chris
  • 如果您有大量数据,则上述命令可能需要一些时间
  • 从特定的相同用户运行您的Playbooks,不要混用。如果你正在混音 - 学习如何正确地做到这一点。
  • 学习/阅读/实验关于unix权限,身份转换,环境等等,b / c这不是“ansible permissions”问题的情况,而是“chris了解unix权限”的问题,这没关系,给你'刚开始使用unix / linux
祝你好运。