我们说我们的产品由两部分组成 - 消费者和聚合器。每个已安装的节点都有n
个消费者和1个聚合器。
我希望允许客户自行制定最多X
个群集的自定义配置,从而改变每个群集的n
个消费者。
我的广告资源概念:
( implied
[cluster1_aggregator]
[cluster2_aggregator]
and so on for other groups
)
[clusterX_aggregator]
machine1.example.com
[clusterX_consumer]
machine2.example.com
machine3.example.com
[clusterX_all:children]
clusterX_consumer
clusterX_aggregator
[site:children]
cluster1_all
cluster2_all
...
clusterX_all
我以为我准备了所有":孩子"安装包中的组,然后允许客户只填写他可用的机器,例如只有2个集群(因此将有cluster3_all:子节点存在于其主机库存中,但不存在于cluster3_aggregator组中。)
我几乎只在我的剧本中使用角色。有没有办法只使用非空库存组自动运行此剧本?我在Ansible - Define Inventory at run time中看到了可能相关的答案,但是1)那些期望用户交互,我非常希望避免,2)我需要将聚合器和消费者按节点分组,不能拥有一大群消费者,并根据这个问题采取第一个X.
所有clusterX都将循环为1,然后将有一个主机:site的角色,它将在所有已部署的集群之上进行一些配置。
预期结果:
[cluster1_aggregator]
和[cluster1_consumer]
,因此已部署。[cluster2_aggregator]
和[cluster2_consumer]
,因此已部署。[cluster3_aggregator]
或[cluster3_consumer]的任何主机,因此未部署。剩下的簇4到X的相同的apllies。在这样的环境中,以下是否可行?
答案 0 :(得分:1)
我认为你必须看看inventory scripts,因为听起来他们可以做你正在寻找的事情。
您可以使用您选择的语言编写此类脚本,并且只能根据您的定义返回有效的群集。