Вы должны использовать --limit
, чтобы выбрать переменную хоста (ов) / группы (ей)
и ansible_play_hosts_all
для циклического воспроизведения.
Демонстрация:
hosts.ini
:
[group1]
host1 ansible_host=1.2.3.4 ansible_connection=local
host2 ansible_host=2.3.4.5 ansible_connection=local
[group2]
host3 ansible_host=3.4.5.6 ansible_connection=local
host4 ansible_host=4.5.6.7 ansible_connection=local
play.yml
:
---
- hosts: all
gather_facts: no
tasks:
- debug:
msg: |
{% for host in ansible_play_hosts_all -%}
{{ host }},
{%- endfor %}
delegate_to: localhost
run_once: yes
$ ansible-playbook -i hosts.ini play.yml --limit group1
PLAY [all] *********************************************************************************************************************************
TASK [debug] *******************************************************************************************************************************
ok: [host1 -> localhost] => {
"msg": "host1,host2,\n"
}
PLAY RECAP *********************************************************************************************************************************
host1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
$ ansible-playbook -i hosts.ini play.yml --limit host1,host3
PLAY [all] *********************************************************************************************************************************
TASK [debug] *******************************************************************************************************************************
ok: [host1 -> localhost] => {
"msg": "host1,host3,\n"
}
PLAY RECAP *********************************************************************************************************************************
host1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0