Если условие истинно, запустите некоторые включаемые файлы yml

У меня есть некоторые книги для ubuntu и centos и я хочу использовать main.yml чтобы проверить, when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos', запустить playbooks (как некоторые и многие :-)).

Когда я бегу только:

-include: centos-xxx.yml
-include: centos-xaa.yml
-include: centos-xsss.yml

Это будет запускать все из них

В принципе, я хочу, чтобы playbook запускался при условии соответствия.

Я не нашел ни одного документа, в котором говорилось бы, что включает include: больше одного я стараюсь не делать задачу за include, если это возможно.

Ответ 1

Вы можете использовать при условии для включения файлов. На самом деле это довольно часто.

- include: centos-xxx.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: debian-xxx.yml
  when: ansible_distribution == 'Debian'

В вашем комментарии - если вы хотите запустить их по порядку, у вас есть два варианта. Здесь просто:

- include: centos-a.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-b.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-c.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-d.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'

Или вы можете сделать это:

- include: centos.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'

и внутри centos.yml:

- include: centos-a.yml
- include: centos-b.yml
- include: centos-c.yml
- include: centos-d.yml