Jinja2/Ansible 比较模板中的 HostVars 值
Jinja2/Ansible Comparing HostVars Values In A Template
我正在尝试比较 Ansible Jinja 模板中 2 个基于清单文件的主机的 hostvars
魔术变量的值。要求基本上确保项目包含在生成的模板输出中,前提是清单中 2 台主机的 IP 地址不相同。
我试过这样做:
{%if {{hostvars[‘CoolServer-1’][‘ansible_default_ipv4’][‘address’]}} != {{hostvars[‘Coolserver2-1’][‘ansible_default_ipv4’][‘address’]}} %}
df -h
{% endif %}
然而,这失败了,Jinja/Ansible 吓坏了。有没有一种方法可以通过比较 Jinja 中的 hostvars
值和 Ansible 来完成我想做的事情?
你不应该在 {% if
中使用 {{
。
试试:
{% if hostvars['CoolServer-1']['ansible_default_ipv4']['address'] != hostvars['Coolserver2-1']['ansible_default_ipv4']['address'] %}
df -h
{% endif %}
P.S。并检查你的单引号 (‘
),它们看起来很奇怪并且不同于 '
。
我正在尝试比较 Ansible Jinja 模板中 2 个基于清单文件的主机的 hostvars
魔术变量的值。要求基本上确保项目包含在生成的模板输出中,前提是清单中 2 台主机的 IP 地址不相同。
我试过这样做:
{%if {{hostvars[‘CoolServer-1’][‘ansible_default_ipv4’][‘address’]}} != {{hostvars[‘Coolserver2-1’][‘ansible_default_ipv4’][‘address’]}} %}
df -h
{% endif %}
然而,这失败了,Jinja/Ansible 吓坏了。有没有一种方法可以通过比较 Jinja 中的 hostvars
值和 Ansible 来完成我想做的事情?
你不应该在 {% if
中使用 {{
。
试试:
{% if hostvars['CoolServer-1']['ansible_default_ipv4']['address'] != hostvars['Coolserver2-1']['ansible_default_ipv4']['address'] %}
df -h
{% endif %}
P.S。并检查你的单引号 (‘
),它们看起来很奇怪并且不同于 '
。