Ansible template 变量不接受ansible jinja模板
我已经创建了jinja2模板,用下面的代码生成我的json文件。 我的变量如下:Ansible template 变量不接受ansible jinja模板,ansible-template,Ansible Template,我已经创建了jinja2模板,用下面的代码生成我的json文件。 我的变量如下: network_profile: - Internal - Custom 若我使用了上述2个变量,那个么我并没有得到下面提到的输出。第二个循环的v_值变为自定义值。我希望它是内部的 而不是如果我使用3个变量,那么它工作良好,并根据我的要求得到低于输出。知道我错过了什么吗 { "p_data": [ { "u_label": &
network_profile:
- Internal
- Custom
若我使用了上述2个变量,那个么我并没有得到下面提到的输出。第二个循环的v_值变为自定义值。我希望它是内部的
而不是如果我使用3个变量,那么它工作良好,并根据我的要求得到低于输出。知道我错过了什么吗
{
"p_data": [
{
"u_label": "Internal",
"u_catalog_item": "abc",
"u_value": "Internal"
},
{
"u_label": "Custom",
"u_catalog_item": "abc",
"u_value": "Internal"
}
]
}
您的
循环.长度为2
。循环第二次出现时,索引也将为2
。所以发生的事情是你要求的
我猜你的意思是:
{
“p_数据”:[
{%用于网络配置文件%}
{%if loop.index==loop.length%}
{
“u_标签”:“{{network}}”,
“目录项”:“{{catalog\u item}”,
“u_值”:“内部”
{#^--将值交换为else}
}
{%else%}
{
“u_标签”:“{{network}}”,
“目录项”:“{{catalog\u item}”,
“u_值”:“{{network}”
{#^--将值交换为if}
},
{%endif%}
{%endfor%}
]
}
我要寻找的是,网络配置文件中的动态变量,如果我添加了新变量,那么我的数据应该在下面查看
{
"p_data": [
{
"u_label": "Internal",
"u_catalog_item": "abc",
"u_value": "Internal"
},
{
"u_label": "Custom",
"u_catalog_item": "abc",
"u_value": "Internal"
},
{
"u_label": "Test",
"u_catalog_item": "abc",
"u_value": "Test"
}
]
}
只有我有条件唯一的“自定义”变量。无论何时,u_值都应为“内部”
我要寻找的是,网络配置文件中的动态变量,如果我添加了新变量,那么我的数据应该如下所示。
{
"p_data": [
{
"u_label": "Internal",
"u_catalog_item": "abc",
"u_value": "Internal"
},
{
"u_label": "Custom",
"u_catalog_item": "abc",
"u_value": "Internal"
},
{
"u_label": "Test",
"u_catalog_item": "abc",
"u_value": "Test"
}
]
}
"p_data": [
{% for network in network_profile %}
{% if loop.index == loop.length %}
{
"u_label": "{{ network }}",
"u_catalog_item": "{{ catalog_item }}",
{% if network|string() != 'Custom' %}
"u_value": "{{ network }}"
{% else %}
"u_value": "Internal"
{% endif %}
}
{% else %}
{
"u_label": "{{ network }}",
"u_catalog_item": "{{ catalog_item }}",
"u_value": "{{ network }}"
},
{% endif %}
{% endfor %}
]
}