我正在通过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
文件在所有情况下都可以使用。
我正在发布并立即回答这个问题,因为花了我一段时间才弄清楚答案。查找文档要困难得多,而且缺少信息,因此我在发布带有适当答案的问题。
答案 0 :(得分:1)
您需要configure your credentials correctly in AWX。 为了使用AWX在Ansible剧本中运行sudo命令,您必须指定“特权升级方法”和“特权升级密码”字段。 (仅在您选择方法后,密码字段才会显示。)
没有必要将凭证存储在AWX之外。使用Ansible文档may refer you to using a vault时,您无需担心在剧本中管理加密文件的麻烦。 AWX可以安全地处理凭据。
次要注意事项:
ssh
密码,但AWX还是需要设置我的特权升级密码。ssh
密码与sudo
密码相同。ssh
和sudo
密码使用“启动提示”选项会导致错误,因为您只能填写ssh
字段。我不知道此错误出现在什么版本中。