0

从 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": { "name": "POD-9" } "pod": {
"name": "POD-10" } }

4

2 回答 2

2

在 Jinja2 中,双花括号用作打印语句。如果您访问标签内的变量,请不要在它们周围放置大括号

{% for pod in pods.params %}
    {% if inventory_hostname == pod.name %} 
        <generate JSON template here>
    {% endif %}
{% endfor %}
于 2015-12-22T08:13:09.423 回答
0

发现问题:{% if pod.name == inventory_hostname %}

于 2015-12-22T08:16:21.710 回答