【问题标题】:Ansible | list hostgroups which has shared hosts稳定 |列出具有共享主机的主机组
【发布时间】:2019-03-13 06:19:43
【问题描述】:

我们有使用 Ansible 部署应用程序的用例,ansible 清单有多个主机组,在某些情况下,相同的主机在多个主机组之间共享

inventoryfile.ini 如下:

[prod-apphostgroup1]
host01.local given_name=host01
host02.local given_name=host02

[prod-apphostgroup2]
host01.local given_name=host01
host02.local given_name=host02

在 Ubuntu 机器上进行部署。无论如何,如果我们要部署到这些主机组,我们将无法并行运行,因为发生了 apt lock 问题,这反过来又将部署标记为失败。

我正在尝试执行以下操作:

  1. 为应用程序列表设置部署顺序,此列表是静态的

    一级

    • 应用程序 1(使用主机组 1)
    • 应用程序 2(使用主机组 1) 2级
    • 应用程序 3(使用主机组 2)
    • 应用程序 4(使用主机组 4)
  2. 在解析列表时,如果任何应用程序使用相同的主机组,那么它应该更改级别。在我的例子中,hostgroup1 在 Level1 的 application1 和 application2 中使用。所以application2部署必须移到Level2

为了更新部署顺序查找,我需要查找清单中是否共享任何主机组。我正在部署到多个站点,在某些站点中,每个应用程序都与唯一的主机组相关联,而在某些站点中,它是共享的。

有什么办法可以在一个特定站点(清单文件)中找到与其他主机组共享主机的主机组列表

非常感谢任何对类似问题或文档的引用。

提前致谢!

【问题讨论】:

    标签: ansible ansible-inventory


    【解决方案1】:

    回答你的问题

    有没有办法在一个特定站点(清单文件)中找到与其他主机组共享主机的主机组列表?

    没有。没有,您可以自己解析库存文件。 Ansible 中的所有组和主机都在变量 groups 中可用。见

    - debug: var=groups
    

    Filters 可用于查找 intersectdifference 的 2 个组。

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 2023-03-27
      • 2013-01-06
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2010-11-10
      相关资源
      最近更新 更多