2017-08-10 34 views
0

我有以下兩種庫存下inventories/dcAnsible限制不工作組

DC1

[kafka] 
k1.test 

DC2

[kafka] 
k2.test 

和神社模板文件

test.j2

{% for item in groups['kafka'] %} {{item}} {% endfor %} 

因爲我的劇本,而一個集羣上運行需要其他集羣的信息,我運行的劇本是這樣的:

ansible-playbook -i inventories/dc testplaybook.yml -u root --limit dc1

但是,問題這種方法是groups['kafka']列出了來自兩個羣集的kafka。如何限制playbook僅從同一集羣列出kafka?

回答

0

您可以使用play_hosts變量來檢查來自groups['kafka']的主機是否位於目標主機中。

{% for item in groups['kafka'] %}{% if item in play_hosts %} {{item}} {% endif %}{% endfor %} 

我會考慮重構您的庫存,以便沒有同一組的2個定義。可能是像dc1_kafkadc2_kafka