【问题标题】:User with sudo access cannot run sudo commands from Ansible AWX, with error "Missing Sudo Password" [closed]具有 sudo 访问权限的用户无法从 Ansible AWX 运行 sudo 命令,出现错误“缺少 Sudo 密码”[关闭]
【发布时间】:2019-01-14 19:06:23
【问题描述】:

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

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

【问题讨论】:

  • many similar questions 关于 Ansible,这些问题没有被标记为离题。还有 ansible-awx 的标签,以及针对 AWX 提出和回答的问题。为什么这个问题有足够的不同,足以成为离题的基础设施管理?
  • 注意:[ansible-tower] 标签也有questions,这些问题与管理服务器有很大关系。这个问题是在编写 Ansible 脚本时提出的;这最终是关于脚本权限的问题,而不是网络或基础设施的问题。如果绝对必要,我可以在此处输入 Ansible 剧本代码并重新标记问题,如果这样可以更清楚地表明这是一个关于运行 Ansible 剧本的问题。 (见第二段,我总结了这个问题。)

标签: linux ansible sudo ansible-awx


【解决方案1】:

您需要configure your credentials correctly in AWX。 为了使用 AWX 在 Ansible playbook 中运行 sudo 命令,您必须指定“权限提升方法”和“权限提升密码”字段。 (密码字段只有在您选择方法后才会出现。)

没有必要在 AWX 之外存储凭据。虽然 Ansible 文档 may refer you to using a vault,但您无需担心如何管理 playbook 中的加密文件。 AWX 可以安全地处理凭据。

小笔记:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 2021-04-02
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多