ansible的jinja2模板中的条件

ansible的jinja2模板中的条件,ansible,jinja2,Ansible,Jinja2,嗨,我能知道如何在jinja2模板中应用以下条件吗 - if item.value has value - if item.value is equals "A" - if item.value is equals "A" else item.value is equals "B" - if (item.value is equals "A" and item.value is equals "B&

嗨,我能知道如何在jinja2模板中应用以下条件吗

- if item.value has value

- if item.value is equals "A" 

- if item.value is equals "A" else item.value is equals "B"

- if (item.value is equals "A" and item.value is equals "B" ) or (item.value is equals "A" and item.value is equals "c" )

- if item.value is equals "A" else if item.value is equals "B" else item.value is equals "c"

- if item.value is NOT equal "" or not null 
试试这个模板

shell>cat test.j2
{items%%中的项的%s}
item={{item}
{%set v=item.value |默认值(“”%}
1) {%if v | length>0%}具有值{%endif%}
2) {%if v==“A”%}是一个{%endif%}
3) {%if v==“A”%}是A{%else%}是B{%endif%}
4) 永远不会发生
5) {%if v==“A”%}是A{%elif v==“B”%}是B{%elif v==“C”%}是C{%endif%}
6) {%if v | length==0%}为空或为空{%endif%}
{%endfor%}
例如,剧本

-hosts:localhost
变量:
项目:
-值:“”
-价值:“A”
-值:“B”
-值:“C”
-值:“X”
-属性:“Y”
任务:
-模板:
src:test.j2
dest:test.txt
给予

shell>cat test.txt
项={'value':'''}
1) 
2)
3) 是B
4) 永远不会发生
5)
6) 为空或空
项={'value':'A'} 1) 有价值
2) 是一个
3) 是一个
4) 永远不会发生
5) 是一个
6)
项={'value':'B'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5) 是B
6)
项={'value':'C'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5) 是C
6)
项={'value':'X'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5)
6)
项={'attrib':'Y'} 1)
2)
3) 是B
4) 永远不会发生
5)
6) 为空或空
试试这个模板

shell>cat test.j2
{items%%中的项的%s}
item={{item}
{%set v=item.value |默认值(“”%}
1) {%if v | length>0%}具有值{%endif%}
2) {%if v==“A”%}是一个{%endif%}
3) {%if v==“A”%}是A{%else%}是B{%endif%}
4) 永远不会发生
5) {%if v==“A”%}是A{%elif v==“B”%}是B{%elif v==“C”%}是C{%endif%}
6) {%if v | length==0%}为空或为空{%endif%}
{%endfor%}
例如,剧本

-hosts:localhost
变量:
项目:
-值:“”
-价值:“A”
-值:“B”
-值:“C”
-值:“X”
-属性:“Y”
任务:
-模板:
src:test.j2
dest:test.txt
给予

shell>cat test.txt
项={'value':'''}
1) 
2)
3) 是B
4) 永远不会发生
5)
6) 为空或空
项={'value':'A'} 1) 有价值
2) 是一个
3) 是一个
4) 永远不会发生
5) 是一个
6)
项={'value':'B'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5) 是B
6)
项={'value':'C'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5) 是C
6)
项={'value':'X'} 1) 有价值
2)
3) 是B
4) 永远不会发生
5)
6)
项={'attrib':'Y'} 1)
2)
3) 是B
4) 永远不会发生
5)
6) 为空或空

hi no 4没有其他方法可以与括号进行比较吗?不清楚您想要什么。条件
(v==A和v==B)
没有任何意义。该值可以是“A”或“B”。不是两个都在同一时间。这只是样品。所以如果有条件的话,我可以用“和”来解释为什么它不起作用?{%for list_values%}{%if item.valueName!=''%}我添加了一个示例。嗨,没有4种方法可以与括号进行比较吗?不清楚您想要什么。条件
(v==A和v==B)
没有任何意义。该值可以是“A”或“B”。不是两个都在同一时间。这只是样品。所以如果有条件的话,我可以用“和”来解释为什么它不起作用?{%for list_values%}{%if item.valueName!=''%}我添加了一个示例。