1

我正在通过 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文件适用于所有情况。

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

4

1 回答 1

2

您需要在 AWX 中正确配置您的凭据。为了使用 AWX 在 Ansible playbook 中运行 sudo 命令,您必须指定“权限提升方法”和“权限提升密码”字段。(密码字段只有在您选择方法后才会出现。)

无需在 AWX 之外存储凭据。虽然 Ansible 文档可能会建议您使用 vault,但您无需担心在 playbook 中管理加密文件。AWX 可以安全地处理凭据。

小注:

  • 尽管 Ansible 文档说它会自动默认为ssh密码,但 AWX要求我设置权限提升密码。
  • 就我而言,ssh密码与密码相同sudo
  • ssh对密码和密码使用“启动时提示”选项sudo会导致错误,因为您只能填写该ssh字段。我不知道这个错误出现在哪个版本。
于 2018-08-07T16:01:01.470 回答