首页 > 解决方案 > 如何使用 ansible playbook 获取每个主机上的组名?

问题描述

我将 ansible playbook 用于审计脚本 我将 ansible playbook 与 Jinja2 一起用于在 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

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

标签: ansiblejinja2ansible-inventory

解决方案


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

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

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


推荐阅读