Я настраиваю способ развертывания файлов конфигурации 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
#
Я не знаю, что происходит, может кто-нибудь помочь мне разобраться, что мне следует делать здесь?
За тонну заранее
Приветствия