如何将省略与Ansible一起使用并避免任何错误?
我试着用省略来表达如下:如何将省略与Ansible一起使用并避免任何错误?,ansible,jinja2,ansible-2.x,Ansible,Jinja2,Ansible 2.x,我试着用省略来表达如下: id: "{{ openstack_networks.id | default(omit) }}" 但是,当未定义openstack\u networks变量时,它似乎一直失败,只有一个例外 写这个jinja2过滤器的正确方法是什么 如果openstack_networks.id不存在,我想省略该参数。不是非常优雅,但100%的工作解决方案可以处理可能未定义的父目录的键: id: "{{ (openstack_networks | default({})).id |
id: "{{ openstack_networks.id | default(omit) }}"
但是,当未定义openstack\u networks
变量时,它似乎一直失败,只有一个例外
写这个jinja2过滤器的正确方法是什么
如果openstack_networks.id不存在,我想省略该参数。不是非常优雅,但100%的工作解决方案可以处理可能未定义的父目录的键:
id: "{{ (openstack_networks | default({})).id | default(omit) }}"
如果定义了
openstack\u networks
,但没有id
键,或者未定义openstack\u networks
,这将使您可以忽略。有趣的是,Ansible将采用类似于纯英语的内容:
id: "{{ omit if openstack_networks.id is not defined or openstack_networks.id }}"
这里的好处是没有额外的括号。谢谢。现在我的头好痛!Ansible中没有美:(