带复合变量的条件时的Ansible
我知道ansible when语句不应该包含任何jinja2分隔符带复合变量的条件时的Ansible,ansible,conditional-statements,jinja2,Ansible,Conditional Statements,Jinja2,我知道ansible when语句不应该包含任何jinja2分隔符{{}。 但是,在以下情况下,是否有办法避免这种情况: vars: xvar: ['/path/file-blabla-abc', '/path/file-blabla-def'] avar: blabla bvar: def tasks: - debug: msg: "yippie" when: "'/path/file-{{ avar }}-{{ bvar }}' in xvar" 给了我预期的结果
{{}
。
但是,在以下情况下,是否有办法避免这种情况:
vars:
xvar: ['/path/file-blabla-abc', '/path/file-blabla-def']
avar: blabla
bvar: def
tasks:
- debug:
msg: "yippie"
when: "'/path/file-{{ avar }}-{{ bvar }}' in xvar"
给了我预期的结果:
ok: [localhost] => {
"msg": "yippie"
}
但也包括警告:
[WARNING]: when statements should not include jinja2 templating delimiters
such as {{ }} or {% %}. Found: '/path/file-{{ avar }}-{{ bvar }}'
我怎样才能解决这个问题?我不能在这里省略jinja2分隔符,因为ansible将无法检测到这些变量。可以创建其他变量
- debug:
msg: OK
vars:
my_path: "/path/file-{{ avar }}-{{ bvar }}"
when: my_path in xvar