具有sudo访问权限的用户无法从Ansible AWX运行sudo命令,错误为“缺少Sudo密码”

时间:2018-08-07 16:00:32

标签: linux ansible sudo ansible-awx

我正在通过AWX(Ansible Tower的开源版本)运行Ansible,并且遇到一个错误,即用户无法使用任何become特权升级命令。每当在AWX上运行命令时,都会产生错误Missing sudo password。我已确认通过在该用户帐户下同时运行sudosu可以对该用户帐户 进行访问。手动运行时,它们都可以正常工作。

简而言之,我正在寻找一种在AWX内的Ansible剧本中运行sudo命令的方法。我已验证我正在使用的帐户具有正确的权限。

虽然可以直接编辑/etc/sudoers文件以允许用户在没有密码的情况下进行sudo,但这不是在这种情况下有效的解决方案。

Ansible在privilege escalation上有文档,但是正确的选项不适用于AWX。它用基于菜单的选项替换了几个命令行标志和选项,并且谷歌搜索没有发现其他任何与AWX有相同错误消息的人。

注意:这不是以下问题的重复,因为所有这些问题都涉及从命令行运行Ansible,而不是从Ansible Tower或AWX运行它。这些问题还假定编辑/etc/sudoers文件在所有情况下都可以使用。

我正在发布并立即回答这个问题,因为花了我一段时间才弄清楚答案。查找文档要困难得多,而且缺少信息,因此我在发布带有适当答案的问题。

1 个答案:

答案 0 :(得分:1)

您需要configure your credentials correctly in AWX。 为了使用AWX在Ansible剧本中运行sudo命令,您必须指定“特权升级方法”和“特权升级密码”字段。 (仅在您选择方法后,密码字段才会显示。)

没有必要将凭证存储在AWX之外。使用Ansible文档may refer you to using a vault时,您无需担心在剧本中管理加密文件的麻烦。 AWX可以安全地处理凭据。

次要注意事项:

  • 尽管Ansible文档说它将自动默认为ssh密码,但AWX还是需要设置我的特权升级密码。
  • 在我的情况下,ssh密码与sudo密码相同。
  • sshsudo密码使用“启动提示”选项会导致错误,因为您只能填写ssh字段。我不知道此错误出现在什么版本中。