What's the sane way run a task only if the host belongs to one or more groups?
Currently, I'm using a boolean within the relevant group, e.g.:
[db_servers:vars]
copy_connection_string=true
- name: Copy db connection string file
synchronize: # ...
when: copy_connection_string is defined
What's the right condition in the when
clause to check whether the current host belongs to the db_servers
group?
Ansible contains special or magic variables - one of the most common is group_names
which is a list (array) of all the groups the current host is in.
- name: Copy db connection string file
synchronize: # ...
when: "'db_servers' in group_names"
The above Ansible task will only run if the host is a member of the db_servers
group.