Как проверить, существует ли группа ресурсов в Ansible?
Есть ли способ проверить, существует ли группа инвентаря (а если нет, то задачу следует пропустить)?
Я знаю, что вы можете проверить, существует ли хост в группе, с помощью "Cool-Server" в группах ['WebServers']", но мне трудно понять, как заставить ansible игнорировать задачу, если сама группа не определен.
У меня в принципе есть такая задача:
- name: Some Task
command: ls -ltr
when:
- "'Cool-Server' in groups['WebServers]"
и я бы хотел, чтобы ansible могла выполнять эту задачу только в том случае, если сама группа WebServers определена в перечне, в противном случае она должна пропустить задачу. Прямо сейчас, если группа WebServers не существует в инвентаре, ansible/jinja сходит с ума и выдает ошибки, потому что пытается найти то, чего не существует.
Есть идеи?
1 ответ
Решение
Следующее должно работать для вас:
when:
- "'Cool-Server' in groups['WebServers] | default([])"