【问题标题】:How can I use ansible playbook to get group name on each of hosts?如何使用 ansible playbook 获取每个主机上的组名?
【发布时间】:2019-07-21 05:42:27
【问题描述】:

我将 ansible playbook 用于审计脚本 我使用带有 Jinja2 的 ansible playbook 在 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

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

【问题讨论】:

    标签: ansible jinja2 ansible-inventory


    【解决方案1】:

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

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

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

    【讨论】:

    • 但是,我想一次性创建模板。因为我需要一个集中的仪表板,在同一页面上包含 centos 和 ubuntu 的结果。
    • 因为您需要创建一个模板,所以按照我的说法,最好将上述文件称为 vars 文件。如果连接存在则检查连接是否存在然后为所有有效连接创建一个模板文件
    猜你喜欢
    • 2021-01-17
    • 2017-09-08
    • 2019-11-08
    • 2021-11-04
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多