我正在建立一种将Elasticsearch配置文件部署到节点的方法,具体取决于集群以及与此伏都教徒法术无关的其他事物。
使用Ansible将配置文件部署到节点。我只有一个jinja模板,其中包含替换URL,路径和其他内容的逻辑。
难题的最后一部分是Discovery.zen.ping.unicast.hosts变量(该变量应包含集群的主节点)
我的清单仅包含给定清单的节点列表。
elastic-master1
elastic-master2
elastic-master3
elastic-data1
elastic-client2
...
我有以下神智逻辑可以解决这个问题:
discovery.zen.ping.unicast.hosts:
{% for server in ansible_play_hosts_all %}
{% if "master" in server %}
- {{ server }}:50052
{% endif %}
{% endfor %}
我希望看到的是:
discovery.zen.ping.unicast.hosts:
- elastic-master1:50052
- elastic-master2:50052
- elastic-master3:50052
相反,我什么也没得到。
但是,当我注释掉if语句时(我知道这是不正确的)
{% for server in ansible_play_hosts_all %}
# {% if "master" in server %}
- {{ server }}:50052
# {% endif %}
{% endfor %}
这是我得到的回报:
discovery.zen.ping.unicast.hosts:
# - elastic-master1:50052
# # - elastic-master3:50052
# # # - elastic-master2:50052
#
我对正在发生的事情一无所知,有人可以帮我弄清楚我应该在这里做什么吗?
提前感谢一吨
欢呼