我在inventories/dc
DC1
[kafka]
k1.test
DC2
[kafka]
k2.test
和jinja模板文件
test.j2
{% for item in groups['kafka'] %} {{item}} {% endfor %}
由于我的Playbook在一个集群上运行时需要其他集群的信息,我这样运行这个剧本:
ansible-playbook -i inventories/dc testplaybook.yml -u root --limit dc1
但是,这种方法的问题是groups['kafka']
列出了来自两个群集的kafka。如何限制playbook只从同一个集群中列出kafka?
答案 0 :(得分:1)
您可以使用play_hosts
变量来检查来自groups['kafka']
的主机是否在目标主机中。
{% for item in groups['kafka'] %}{% if item in play_hosts %} {{item}} {% endif %}{% endfor %}
我会考虑重构您的广告资源,以便同一组中没有2个定义。可能会有dc1_kafka
和dc2_kafka
这样的内容吗?