Факт ansible_system
- это ключ под хостом, а не список ключей. Кроме того, условные операторы не должны включать разделители шаблонов jinja2, такие как {{ }}
или {% %}
, используйте hostvars[item]
вместо hostvars[ "{{ item }}" ]
.
Убедитесь, что gather_facts
установлено на true
.
Обратите внимание, что модуль add_host
не обновляет файл инвентаризации, а обновляет инвентарь в памяти. Я включил задачу debug
для печати групп из инвентаря в памяти ansible.
gather_facts: true
tasks:
- name: Linux Group
add_host:
name: "{{ item }}"
group: LinuxGroup
when: hostvars[item].ansible_system == 'Linux'
with_items: "{{ ansible_play_hosts_all }}"
- debug: msg="{{ groups }}"