假設我們的產品由兩個組件組成 - 消費者和聚合器。每個安裝的節點具有n
使用者和1個聚合器。用戶可自定義Ansible庫存
我希望允許客戶自行定製配置最多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到,然後會與主機有一個角色:將在所有已部署的集羣上進行一些配置的網站。
預期的結果:
- Cluster1中有一些主機填寫
[cluster1_aggregator]
和[cluster1_consumer]
,所以它的部署。 - Cluster2有一些主機填充在
[cluster2_aggregator]
和[cluster2_consumer]
中,因此已部署。 - Cluster3沒有任何主機填寫
[cluster3_aggregator]
或[cluster3_consumer],因此未部署。對於其餘羣集4到X的相同羣組。 - 由於羣集2是要部署的最後一個羣集,因此針對來自羣集1和羣集2的所有機器完成最終的站點範圍配置。
在這樣的環境中以下可能嗎?
- 檢測最高填寫庫存部分
- 循環的作用在數量索引的主機組
似乎這是最好的選擇,非常感謝! – 2015-03-01 21:12:31