Ansible检查是否输入复杂的字典

时间:2018-08-08 08:20:03

标签: loops dictionary ansible

我的字典结构复杂,我想检查是否定义了子项。我什至不知道这是否可能。

这是我的字典的样子:

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中的每个条目。

我可能会写一个自定义插件,因为这听起来真的很难。

1 个答案:

答案 0 :(得分:1)

如果它是列表,则必须遍历它,您可以尝试这种情况

- 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条件将检查是否定义了变量。