2017-04-18 136 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