2017-04-18 65 views
0

我想在Ansible Jinja模板中比較基於2個庫存文件的主機'hostvars魔術變量的值。要求基本確保只有當清單中的兩臺主機的IP地址不相同時,纔會在結果模板輸出中包含項目。Jinja2/Ansible比較模板中的HostVars值

我也試着這樣做:

{%if {{hostvars[‘CoolServer-1’][‘ansible_default_ipv4’][‘address’]}} != {{hostvars[‘Coolserver2-1’][‘ansible_default_ipv4’][‘address’]}} %} 
df -h 
{% endif %} 

然而,失敗和神社/ Ansible怪胎。有什麼方法可以完成我想要將Jinja中的hostvars值與Ansible進行比較的方法?

回答

1

您不應該在{% if內使用{{

嘗試:

{% if hostvars['CoolServer-1']['ansible_default_ipv4']['address'] != hostvars['Coolserver2-1']['ansible_default_ipv4']['address'] %} 
df -h 
{% endif %} 

附:並檢查你的單引號(),他們看起來很奇怪,不同於'

+0

謝謝!這個問題正是這個問題 – NAF