我有一个看起来像这样的库存文件
[elk-master-nodes]
10.22.123.123
10.22.234.234
10.22.111.222
[elk-data-nodes]
10.22.111.111
10.22.222.222
[elk-client-nodes]
10.22.111.234
我的模板文件中有这个
{% if "{{ ansible_default_ipv4.address }}" in groups['elk-master-nodes'] %}
node.master: true
node.data: false
{% elif "{{ ansible_default_ipv4.address }}" in groups['elk-data-nodes'] %}
node.master: false
node.data: true
{% else %}
node.master: false
node.data: false
{% endif %}
但是,生成的文件总是有" else" if语句的子句,也就是说,我在所有节点中看到了这一点
node.master: false
node.data: false
我猜测我在这种情况下没有正确嵌入Ansible事实,ansible_default_ipv4.address?什么是正确的语法?删除""导致语法错误。
答案 0 :(得分:0)
由于jinja2代码内部基本上是Python,只需执行
{% if ansible_default_ipv4.address in groups['elk-master-nodes'] %}
node.master: true
node.data: false
{% elif ansible_default_ipv4.address in groups['elk-data-nodes'] %}
node.master: false
node.data: true
{% else %}
node.master: false
node.data: false
{% endif %}