【问题标题】:How to loop over inventory_hostname in Ansible如何在 Ansible 中循环inventory_hostname
【发布时间】:2020-07-29 12:54:33
【问题描述】:

我正在尝试将动态清单的所有主机添加到组:可达。

这是我的剧本。

$ cat collect_try.yaml 
  ---
    - hosts: "{{ env }}:&{{ zone }}"
      become: true
      tasks:
        - add_host:
          name: "{{ inventory_hostname }}"
          group: reachable

    - name: dynamicgroup
      hosts: reachable
      gather_facts: false
      tasks:
        - debug: msg="{{ inventory_hostname }} is reachable"

这是我的输出:

TASK [Gathering Facts] 
ok: [vm1.nodekite.com]
ok: [vm2.nodekite.com]
ok: [vm3.nodekite.com]
ok: [vm4.nodekite.com]

TASK [add_host] 
changed: [vm1.nodekite.com] => {
"add_host": {
    "groups": [
        "reachable"
    ],
    "host_name": "vm1.nodekite.com",
    "host_vars": {
        "group": "reachable"
    }
},
"changed": true
}
PLAY [dynamicgroup] 
META: ran handlers

TASK [debug] 
ok: [vm1.nodekite.com] => {
    "msg": "vm1.nodekite.com is reachable"
 
PLAY RECAP:
vm1.nodekite.com     : ok=3    changed=1    unreachable=0   <=====     
vm2.nodekite.com     : ok=1    changed=0    unreachable=0         
vm3.nodekite.com     : ok=1    changed=0    unreachable=0
vm4.nodekite.com     : ok=1    changed=0    unreachable=0

如何使用循环将所有主机添加到“组”:“可达”。有人可以帮忙吗?

【问题讨论】:

    标签: loops ansible ansible-facts


    【解决方案1】:

    来自add_host documentation notes

    此模块绕过播放主机循环,并且只对播放中的所有主机运行一次,如果您需要它进行迭代,请使用 with-loop 构造。

    在您的特定情况下(即您的游戏中的动态主机模式),您应该能够使用inventory_hostnames lookup 来实现您的要求,例如(未完全测试):

    - name: Collect reachable hosts
      hosts: localhost
      gather_facts: false
      
      tasks:
        - name: Push hosts to "reachable" group
          vars:
            pattern: "{{ env }}:&{{ zone }}"
          add_host:
            name: "{{ item }}"
            group: reachable
          loop: "{{ query('inventory_hostnames', pattern) }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      相关资源
      最近更新 更多