无法执行";sudo su-“;在Ansible

无法执行";sudo su-“;在Ansible,ansible,ansible-playbook,Ansible,Ansible Playbook,我通常使用以下命令通过ssh到达机器: ssh myuser@192.168.10.1 然后作为“myuser”,我变成了jboss用户,如下所示(无需密码): 我需要用Ansible复制相同的行为,但结果是: fatal: [192.168.10.1] => Missing become password 这是我的yml文件: - name: Hello Ansible - quick start hosts: webservers user: myuser become


我通常使用以下命令通过ssh到达机器:

ssh myuser@192.168.10.1
然后作为“myuser”,我变成了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

根据文件,它似乎是正确的,但它不是。有什么帮助吗?

据我所知,这种确切的方法是不可能的

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

无法链接方法。您不能使用sudo/bin/su-成为用户, 您需要具有以sudo或be中的用户身份运行命令的权限 能够直接su到它(对于pbrun、pfexec或其他支持的方法也是如此)。


也许“been_method:su”就可以了。

谢谢你的回复。我现在无法验证它,尽管我会尽快更新答案
- 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