Ansible come_user 会导致“sudo 密码不正确”,但仅使用 come 就可以了

问题描述 投票:0回答:1
---
- name: Clone rbenv
  become: yes
  git:
    repo: 'https://github.com/rbenv/rbenv.git'
    dest: /home/mastodon/.rbenv

效果很好

---
- name: Clone rbenv
  become: yes
  become_user: mastodon
  git:
    repo: 'https://github.com/rbenv/rbenv.git'
    dest: /home/mastodon/.rbenv

不起作用,错误是“失败!” => {"msg": "sudo 密码不正确"}'

ansible_sudo_pass 设置为 ansible_user 的 sudo 密码

Ansible版本:2.15.3

操作系统:OpenSUSE

我尝试过设置ansible_method、ansible_exe。我希望权限升级使命令以“become_user”身份运行。

ansible-2.x opensuse
1个回答
0
投票

嗯,也许吧 错误消息“不正确的 sudo 密码”表明,become_user 指令以及您尝试切换到 mastodon 用户的方式可能存在问题。

验证 sudo 配置: 确保在 come_user 中指定的用户(在本例中为 Mastodon)在目标系统上具有必要的 sudo 权限。您可以检查 sudoers 文件 (/etc/sudoers) 以确保用户有权使用 sudo 执行命令,而不会提示输入密码。

检查Sudo密码: 验证 ansible_sudo_pass 中设置的密码对于目标系统上的 ansible_user 是否正确。确保它不包含任何可能需要转义的特殊字符。

测试 Sudo 权限: 您可以运行一个简单的 Ansible 任务来检查 mastodon 用户是否可以在没有密码提示的情况下执行 sudo 命令。例如:

yaml 复制代码

  • 名称:测试乳齿象的 sudo 权限 变成:是 成为用户:乳齿象 命令:whoami 如果用户具有 sudo 权限,此任务应返回“mastodon”。

检查 SSH 密钥设置: 确保 mastodon 用户配置了正确的 SSH 密钥身份验证。如果您使用基于密钥的身份验证,ansible_user 的 SSH 密钥应存在于 mastodon 用户的 ~/.ssh/authorized_keys 文件中。

升级 Ansible: 虽然 Ansible 版本 2.15.3 应该适用于大多数情况,但保持 Ansible 最新是一个很好的做法。如果其他故障排除步骤无法解决问题,您可以考虑升级到最新版本。

检查用户差异: 验证 ansible_user 和 mastodon 用户的环境或权限之间是否存在显着差异。这些差异可能会影响使用become_user切换用户的能力。

调试: 您可以将调试语句添加到您的剧本中,以收集有关正在发生的情况的更多信息。例如,您可以使用 debug 模块打印出与用户和 sudo 相关的变量或信息。

© www.soinside.com 2019 - 2024. All rights reserved.