【问题标题】:How to achieve sudo su - <user> and run all command in ansible如何实现 sudo su - <user> 并在 ansible 中运行所有命令
【发布时间】:2016-08-15 15:43:51
【问题描述】:

我可以通过 ssh 访问该框,但要运行某些命令,我​​需要执行 sudo su - 并输入密码。然后我可以运行该用户下的所有命令。

我怎样才能做到这一点。我试过 become 和 sudo 对我没有用。

谁能给我一个可行的例子?

【问题讨论】:

  • 你试过become_method: su吗?
  • 是的,运气不好
  • 我认为来自调试输出的错误消息(设置 ANSIBLE_DEBUG=1)在这里会有所帮助。
  • 这是出现的错误 {"failed": true, "msg": "Timeout (12s) waiting for privilege escalation prompt:"}

标签: ansible ansible-playbook


【解决方案1】:

Ansible 使用the become directive 来控制权限提升。

如果您使用sudo su -,则您使用sudo 来提升您的权限(而su - 只是启动一个交互式shell)。 become_method 应该设置为“sudo”。

由于您没有使用无密码 sudo,因此您需要告诉 Ansible 您将提供密码。您可以使用ansible_become_pass 在配置文件中执行此操作,但更安全的方法是使用--ask-become-pass 调用ansible。

【讨论】:

    【解决方案2】:

    这对我有用...

    become: yes
    become_method: sudo
    become_user: myuser
    become_flags: 'su -c'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-22
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多