【问题标题】:Ansible, checking inventory groups and hostsAnsible,检查库存组和主机
【发布时间】:2019-09-19 11:04:01
【问题描述】:

是否有任何可能的方法来检查带有循环的已注册变量(主机名)是否在清单中并打印它们的组?

我正在创建一个角色来安装带有 ansible 角色的心跳。但它只会安装在一个会 ping 另一个的 jumphost 上。

在这个角色中,我创建了单独的文件并将每个主机的配置放入其中。但是我需要添加一些字段来找出它们属于哪个组(我们在 Kibana 中需要它)。

我使用了 Jinja 模板,但它粘贴了拥有我扮演角色的主机的组。

{% for group in group_names %}
    group: {{ group }}
{% endfor %}

所以我开始搜索 ansible 本身是否有任何方法可以做到这一点。 我

- name: list of hosts
  debug:
    msg: "{{ item }}"
  with_items:
    - "{{ groups['all'] }}"

它返回了主机,我想将此列表与我们清单中的列表进行比较,并获取它们的组名以将它们粘贴到心跳的 icmp.yml 配置中

【问题讨论】:

    标签: python linux elasticsearch ansible


    【解决方案1】:

    问; 是否有任何可能的方法来检查带有循环的注册变量(主机名)是否在清单中并打印它们的组?

    答:是的。可以使用Special Variables

    ansible_play_hosts_all:被播放的所有主机列表

    group_names:当前主机所属的组列表

    - debug:
        msg: "{{ hostvars[item].group_names }}"
      loop: "{{ hostnames }}"
      when: item in ansible_play_hosts_all
    

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2020-09-02
      • 2016-06-12
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2021-12-06
      相关资源
      最近更新 更多