jinja2问题与ansible和elasticsearch.yml

时间:2019-01-08 21:34:03

标签: elasticsearch ansible jinja2

我正在建立一种将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
#

我对正在发生的事情一无所知,有人可以帮我弄清楚我应该在这里做什么吗?

提前感谢一吨

欢呼

0 个答案:

没有答案