Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 字典项的可解条件_Ansible - Fatal编程技术网

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 }}"