Выполнение playbook с разными пользователями sudo на разных хостах

В списке хостов есть два хоста DEV и QA host.

Мне нужно выполнить playbook с dev_sudo_user для среды разработки и qa_sudo_user для среды QA параллельно

детали инвентаря

[hostlist]
host1 ansible_become_user=dev_sudo_user
host2 ansible_become_user=qa_sudo_user

---
- hosts: hostlist
  connection: ssh
  gather_facts: false
  remote_user: abcd  
  serial: 1   
  become: true


  tasks:
  - name: run Script
    shell: python apps.py
    register: result
  - debug: var=result

Я могу получить результат для одного хоста. Я хочу результат для обоих хостов


person Devi Naga    schedule 04.04.2018    source источник


Ответы (1)


вы должны использовать аргументы become и become_user. см. пример и вывод ниже.

размещает файлы с переменной, как у вас было:

[test_group]
rhel-green  become_user=root
rhel-blue   become_user=devops

сборник пьес:

- hosts: test_group
  gather_facts: false

  tasks:
    - name: step 1
      shell: "id"
      register: shell_output
      become_user: "{{ become_user }}"
      become: true

    - debug:
        var: shell_output.stdout

вывод выполнения:

[root@ansible]# ansible-playbook -i hosts become_loop.yml 

PLAY [test_group] ***************************************************************************************************************************************************************************************************

TASK [step 1] *******************************************************************************************************************************************************************************************************
changed: [rhel-blue]
changed: [rhel-green]

TASK [debug] ********************************************************************************************************************************************************************************************************
ok: [rhel-green] => {
    "shell_output.stdout": "uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023"
}
ok: [rhel-blue] => {
    "shell_output.stdout": "uid=1000(devops) gid=1000(devops) groups=1000(devops) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023"
}

PLAY RECAP **********************************************************************************************************************************************************************************************************
rhel-blue                  : ok=2    changed=1    unreachable=0    failed=0   
rhel-green                 : ok=2    changed=1    unreachable=0    failed=0   

[root@ansible]# 
person ilias-sp    schedule 04.04.2018