从Ansible开始,我正在尝试使用ReST API与外部应用程序进行交互。也许我在这里缺少一些简单的东西。
我试图将库存文件中的每个主机与调用jinja2模板的角色使用的变量文件中指定的POD名称进行比较。
我的库存文件如下所示:
[all]
'POD-9'
'POD-10'
变量文件:
pods:
params:
- name: POD-9
- name: POD-10
{% for pod in pods.params %}
{% if '{{ inventory_hostname }}' == '{{ pod.name }}' %}
<generate JSON template here>
{% endif %}
{% endfor %}
if语句不会生效。我希望仅在inventory_hostname中生成模板等于变量文件中的pod名称
当前的JSON文件包括:
{
“pod”:{
“名字”:“POD-9”
}
“pod”:{
“名字”:“POD-10”
}
}
答案 0 :(得分:2)
在Jinja2中,双花括号用作打印语句。如果您访问标签内的变量,请不要在它们周围放置大括号
{% for pod in pods.params %}
{% if inventory_hostname == pod.name %}
<generate JSON template here>
{% endif %}
{% endfor %}
答案 1 :(得分:0)
发现问题: {%if pod.name == inventory_hostname%}