如何使用ansible剧本在每个主机上获取组名?

时间:2019-02-27 13:23:50

标签: ansible jinja2 ansible-inventory

我使用ansible剧本作为审核脚本 我在Jinja2中使用ansible剧本,以HTML形式创建仪表板 这是我的库存

[Ubuntu16]
target1.com
[CentOS7]
target2.com

我运行所有主机以检查连接,我想执行以下步骤

  1. 按组分别计数清单中的所有主机

  2. 如果连接成功,请注册一个参数(按组分隔)

  3. ,然后将结果参数发送到Jinja2模板

结果应该是这样

Ubuntu16_sum_all = 1
Ubuntu16_alive = 1
Ubuntu16_dead = 1
CentOS7_sum_all = 1
CentOS7_alive = 1
CentOS7_dead = 1

在运行剧本中的所有主机时,我不知道要获取主机的组名。请帮助

1 个答案:

答案 0 :(得分:0)

我不认为有直接使用上面的清单格式的直接方法。我的建议是将主机名放在变量中,如下所示:

---
hosts:
  - Ubuntu:
      - 1
      - 2
  - Centos:
      - 1
      - 2
  - Fedora:
      - 1
      - 2

在上述清单中,您可以直接遍历所有主机名