【问题标题】:Ansible iterate over inventory variablesAnsible 迭代库存变量
【发布时间】:2019-11-21 10:39:53
【问题描述】:

我有一个清单,我在其中定义了一些变量,例如服务器 ip:

all:
  children:
    my_servers:
      children:
        data:
          hosts:
            data01.mydomain:
              ansible_host: 10.0.0.1
              es_name: "data01"
            data02.mydomain:
              ansible_host: 10.0.0.2
              es_name: "data02"

我知道要访问主机名,我可以使用“{{ groups['data'] }}”之类的东西,这将遍历主机名。

我想做的是遍历每个主机名中的 var“ansible_host”(在防火墙上打开规则)。我可以使用 "{{ hostvars['data01']['ansible_host'] }}" 获得 one 的值,但我找不到遍历清单中所有主机的方法。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    给你。记得使用-i hosts 运行游戏

    play.yml

    ---
    - name: Play
      hosts: localhost
      tasks:
        - name: iterate
          debug:
             msg: "{{ item }}:{{ hostvars[item].ansible_ssh_host }}"
          with_items:
            - "{{ groups['all'] }}"
    

    像下面这样运行剧本

    ansible-playbook -i hosts play.yml
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-18
      • 2017-06-25
      相关资源
      最近更新 更多