Я бы хотел отфильтровать хосты по переменной, установленной на них. Например:
У меня есть группа хостов, один хозяин, остальные - рабы. На мастере установлена переменная replica_type: master
. Теперь я хотел бы получить главный сервер динамически.
Мой рабочий подход:
- set_fact:
master_server_string: >-
{% for server in groups.my_servers %}
{% if hostvars[server]['replica_type']=='master' -%}
{{ server }}
{% endif %}
{% endfor %}
- set_fact:
master_server: "{{ master_server_string|trim }}"
Есть ли способ сделать то же самое с фильтром (или хотя бы в одной задаче)?
например что-то вроде
"{{ server for server in groups.my_servers if hostvars[server]['replica_type'] == 'master' }}"