jinja2 проблема с ansible иasticsearch.yml - PullRequest
0 голосов
/ 09 января 2019

Я настраиваю способ развертывания файлов конфигурации 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
#

Я не знаю, что происходит, может кто-нибудь помочь мне разобраться, что мне следует делать здесь?

За тонну заранее

Приветствия

...