【问题标题】:Unable to execute "sudo su -" in Ansible无法在 Ansible 中执行“sudo su -”
【发布时间】:2016-07-06 02:46:02
【问题描述】:


我通常使用以下命令通过 ssh 访问机器:

ssh myuser@192.168.10.1

然后作为“myuser”我成为用户jboss如下(不要求密码):

$ sudo su - jboss

我需要用 Ansible 复制相同的行为,但结果是:

fatal: [192.168.10.1] => Missing become password

这是我的 yml 文件:

- name: Hello Ansible - quick start
  hosts: webservers
  user: myuser
  become: true
  become_method: sudo
  become_user: jboss

  tasks:
    - name: Hello server
      shell: /home/jboss/script.sh

根据文档,它似乎是正确的,但事实并非如此。有什么帮助吗?

【问题讨论】:

    标签: ansible ansible-playbook


    【解决方案1】:

    据我了解文档,这种确切的方法是不可能的。

    每个主机只能启用一种方法

    方法不能被链接。您不能使用 sudo /bin/su - 成为用户, 您需要具有在 sudo 中以该用户身份运行命令的权限,或者 能够直接 su 到它(pbrun、pfexec 或其他支持的方法相同)。 source

    也许“become_method: su”可以解决问题。

    【讨论】:

    • 感谢您的回复。我现在无法验证它,但我会尽快更新答案
    猜你喜欢
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多