Ansible循环通过字典词典

时间:2018-02-06 01:10:29

标签: loops dictionary ansible

我有一个看起来像这样的json数据结构。

"napalm_interfaces_ip": {
   "GigabitEthernet0/0": {
       "ipv4": {
           "10.23.160.110": {
               "prefix_length": 22
           },
           "10.23.160.114": {
               "prefix_length": 22
           }
       }
   },
   "GigabitEthernet1/0/1": {
       "ipv4": {
           "10.23.160.112": {
               "prefix_length": 22
           }
       }
   }
},

我想使用Ansible来查找分配了特定IP地址的接口。

我以为我可以使用 with_dict 循环遍历字典, 时可以找到匹配的IP接口。像这样......

- name: Testing with_dict
  debug:
    msg: "Interface is {{ item.key }}"
  when: 10.23.160.114 == item.value.ipv4.keys()
  with_dict: "{{ napalm_device_data.ansible_facts.napalm_interfaces_ip }}" 

这不会起作用,因为item.value.ipv4是一个字典,我真正想做的是将item.value.ipv4中的每个键与IP地址进行比较。我想我需要一种方法来循环字典中的字典,但我不是100%肯定。

我不想展平数据结构。我只是想找一种在字典中引用字典键的方法。

非常感谢任何帮助。

0 个答案:

没有答案