Ansible检查复杂字典中的密钥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible检查复杂字典中的密钥相关的知识,希望对你有一定的参考价值。
我有复杂的字典结构,我想检查是否定义了一个子键。我甚至不知道这是否可能..
这是我的dict的样子:
config:
1:
client: ubuntu
network_setup:
- routed
ports:
sw1: null
sw2:
client: 1/0/2
lte: 1/0/5
2:
client: archlinux
network_setup:
- bridged
ports:
sw1:
client: 1/0/4
sw2: null
...
注意:无法定义lte键!
我想要的是检查配置字典中是否定义了lte。理想情况下,我需要使用循环遍历config
中的每个条目。
我可能会写一个自定义插件,因为这听起来很难。
答案
如果它是一个列表,你将不得不循环它,你可以尝试这种情况
- debug: var=test_item.ports.sw2.lte
when: test_item.ports.sw2.lte is defined
with_items: "{{ config }}"
loop_control:
loop_var: test_item
when条件将检查变量是否已定义。
以上是关于Ansible检查复杂字典中的密钥的主要内容,如果未能解决你的问题,请参考以下文章