【发布时间】: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)
- 应用程序 2(使用主机组 1) 2级
- 应用程序 3(使用主机组 2)
- 应用程序 4(使用主机组 4)
- 在解析列表时,如果任何应用程序使用相同的主机组,那么它应该更改级别。在我的例子中,hostgroup1 在 Level1 的 application1 和 application2 中使用。所以application2部署必须移到Level2
为了更新部署顺序查找,我需要查找清单中是否共享任何主机组。我正在部署到多个站点,在某些站点中,每个应用程序都与唯一的主机组相关联,而在某些站点中,它是共享的。
有什么办法可以在一个特定站点(清单文件)中找到与其他主机组共享主机的主机组列表
非常感谢任何对类似问题或文档的引用。
提前致谢!
【问题讨论】: