【发布时间】:2019-01-14 19:06:23
【问题描述】:
我正在通过 AWX(Ansible Tower 的开源版本)运行 Ansible,并且一直遇到用户无法使用任何 become 权限提升命令的错误。每当在 AWX 上运行命令时,都会产生错误消息 Missing sudo password。我已通过在该用户帐户下运行 sudo 和 su 确认用户帐户确实具有访问权限。当它们手动运行时,它们都可以完美地工作。
简单地说,我正在寻找一种在 AWX 中从 Ansible 剧本运行 sudo 命令的方法。我已验证我使用的帐户具有正确的权限。
虽然可以直接编辑 /etc/sudoers 文件以允许用户在没有密码的情况下使用 sudo,但这不是一种适用于这种情况的解决方案。
Ansible 确实有关于 privilege escalation 的文档,但正确的选项不能通过 AWX 工作。它用基于菜单的选项替换了几个命令行标志和选项,并且谷歌搜索没有发现任何其他人与 AWX 有相同的错误消息。
注意:这不是以下问题的重复,因为这些问题都涉及从命令行运行 Ansible,而不是从 Ansible Tower 或 AWX 运行它。这些问题还假设编辑/etc/sudoers 文件适用于所有情况。
- Missing sudo password in Ansible
- Specify sudo password for Ansible
- How can a user with SSH keys authentication have sudo powers in Ansible?
我发布并立即回答了这个问题,因为我花了一点时间才找到答案。查找文档比它需要的要困难得多,而且它缺少信息,所以我发布了这个带有适当答案的问题。
【问题讨论】:
-
注意:[ansible-tower] 标签也有questions,这些问题与管理服务器有很大关系。这个问题是在编写 Ansible 脚本时提出的;这最终是关于脚本权限的问题,而不是网络或基础设施的问题。如果绝对必要,我可以在此处输入 Ansible 剧本代码并重新标记问题,如果这样可以更清楚地表明这是一个关于运行 Ansible 剧本的问题。 (见第二段,我总结了这个问题。)
标签: linux ansible sudo ansible-awx