Переменная with_items и hostvars - PullRequest
0 голосов
/ 24 июня 2019

Мне нужно передать информацию об имени динамической группы with_items, чтобы я мог получить доступ к конкретному факту, который запускается с другого хоста.Я не могу жестко закодировать имя группы

Я попытался установить универсальную переменную, которая передается как «GroupName», несколькими различными способами.В том числе

with_items: "{{ groups['{{GROUPNAME}}'] }}"

   - name: Name of task
     debug:
       msg: "{{ hostvars[item]['ansible_check_mode'] }}"
     with_items: "{{ groups['GROUPNAME'] }}"

роковым: [localhost]: FAILED!=> {"msg": "объект dict не имеет атрибута {{GROUPNAME}} '"}

1 Ответ

1 голос
/ 24 июня 2019

Получить список хостов в группе и зациклить их

  vars:
    my_group: GROUPNAME
  tasks:
    - set_fact:
        my_hosts: "{{ groups|
                      dict2items|
                      selectattr('key', 'match', my_group)|
                      map(attribute='value')|
                      list|
                      flatten }}"
    - debug:
        msg: "{{ hostvars[item]['ansible_check_mode'] }}"
      loop: "{{ my_hosts }}"

(не тестировалось)

...