Ansible 字典项的可解条件
我定义了一个字典列表:Ansible 字典项的可解条件,ansible,Ansible,我定义了一个字典列表: members_list: any: name: any username: any anyone: name: username: anyone 在我的Ansible剧本中,我运行多个docker容器: docker_container: name: "{{ item.key }}" when: "{{ item.
members_list:
any:
name: any
username: any
anyone:
name:
username: anyone
在我的Ansible剧本中,我运行多个docker容器:
docker_container:
name: "{{ item.key }}"
when: "{{ item.key }} != any"
with_dict: "{{ members_list }}"
但我得到了以下错误:
The conditional check '{{ item.key }} != any' failed. The
error was: error while evaluating conditional ({{ item.key
}} != any): 'any' is undefined
当我运行playbook而不使用When条件运算符时,它工作正常
提前感谢。您需要引用单词
any
,否则它将被解释为变量引用。此外,当表达式(该表达式已作为Jinja表达式计算)时,您不需要在表达式中使用Jinja模板标记:
我发现这样的嵌套引号可能会让人困惑,而且经常会选择这样的引号
YAMLs替代报价机制,例如:
- docker_container:
name: "{{ item.key }}"
when: >-
item.key != 'any'
with_dict: "{{ members_list }}"
这与前一版本相同;我只是觉得更容易理解
阅读并理解
- docker_container:
name: "{{ item.key }}"
when: >-
item.key != 'any'
with_dict: "{{ members_list }}"