Как проверить, существует ли группа ресурсов в 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([])"
Другие вопросы по тегам