Назад | Перейти на главную страницу

Явно пустые группы в Ansible

У меня есть учебник, который можно применить к различным инвентарям. Некоторые пьесы применимы не ко всем инвентарям.

Я могу исключить группу из инвентаря или добавить ее, но оставить пустой. В обоих случаях при запуске необязательного воспроизведения появляется предупреждение:

[WARNING]: Could not match supplied host pattern, ignoring: myoptionalgroup

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

Как я могу лучше всего подавить предупреждение в тех ситуациях, когда я знаю, что в данном инвентаре не будет хостов, к которым применяется игра?

Вряд ли есть способ подавить само это предупреждение, но вы можете принудительно завершить игру при определенных условиях.

Например, вы можете проверить хостов в текущем прогоне игры и завершить игру, если есть dummy хост:

---
- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: hello 1

- hosts: optional
  gather_facts: no
  pre_tasks:
    - meta: end_play
      when: ('dummy' in play_hosts)
  tasks:
    - debug:
        msg: hello 2

- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: hello 3

Это будет:

  • предупредить, если optional группа не существует или пуста и пропустить воспроизведение
  • закончить игру с предварительным заданием, если optional группа содержит dummy хозяин
  • выполнять задачи как обычно, если optional группа содержит другие хосты и нет dummy