2017-03-22 51 views
0

我有一個清單文件看起來像這樣如何在模板文件中嵌入Ansible事實?

[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 %} 

但是有這樣的,生成的文件總是有if語句中的「其他」條款,即是的,我看到在我的所有節點

node.master: false 
node.data: false 

我猜我沒有正確地嵌入Ansible事實上,ansible_default_ipv4.address,在這種情況下?什麼是正確的語法?刪除「」會導致語法錯誤。

回答

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 %} 
相關問題