变量with_items和hostvars

时间:2019-06-24 17:00:17

标签: ansible ansible-2.x ansible-facts

我需要传递带有_items的动态组名信息,以便我可以访问从另一台主机运行的特定事实。我无法对组名进行硬编码

我尝试设置通过几种不同方式作为“ GroupName”传递的通用变量。包括

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

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

致命:[localhost]:失败! => {“ msg”:“'字典对象'没有属性'{{GROUPNAME}}'”}

1 个答案:

答案 0 :(得分:1)

获取组中主机的列表并循环进行

  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 }}"

(未经测试)