Наша структура инвентаризации довольно стандартна, у нас есть основная папка инвентаря, подпапка для каждого отдельного сайта, которая содержит список хостов на определенном сайте и папку group_vars для каждого сайта, где мы храним дополнительные переменные для сайта / устройства:
inventory:
---> site1:
hosts.txt
---> group_vars:
site1.yml
Пока что мы пытаемся создавать новые инвентаризации / сайты только в том случае, если на них работают все наши книги с книгами, но сейчас мы достигли той точки, когда нам нужно работать на сайтах, где мы знаем, что некоторые книги будут выходить из строя (или будут работать только для определенных hosts), поэтому мы хотели бы добавить несколько флагов в файлы инвентаризации (т. е. в [group: vars] или для каждого хоста), чтобы эти хосты можно было пропустить. Е.Г.
[group1]
host1
host2
host3 playbook1_enabled: true
[group1:vars]
playbook1_enabled: false
На этом этапе список хостов для playbook1 должен быть отфильтрован только для host3:
ansible-playbook -i inventory/site1/hosts.txt playbook1.yml --list-hosts
playbook: playbook1.yml
play #1 (all): PLAYBOOK TAGS: []
pattern: [u'all']
hosts (1):
host3
Однако, похоже, я не могу найти ничего, что позволило бы мне проверить некоторые значения переменных для хоста и исключить его из списка хостов.
Кто-нибудь знает, возможно ли это вообще?
Если нет, каковы альтернативы? Я имею в виду, как лучше всего отслеживать, какая книга воспроизведения может работать на каком сайте / хостах, и автоматически исключать хосты, на которых эта книга не может работать?
Любое понимание этого вопроса приветствуется !!