我有两个单独的列表。第一个是Ansible收集的网络接口列表:
"ansible_interfaces": [
"ens32",
"ens34"
],
第二个是我在清单中手动定义的IP地址列表:
host_ipv4_list:
- "192.168.0.1"
- "192.168.1.1"
我的目的是将这两个列表结合起来,以获得具有如下键和值的字典:
host_network_info:
- { "interface": "ens32", "ip": "192.168.0.1" }
- { "interface": "ens34", "ip": "192.168.1.1" }
什么是最好的方法?
答案 0 :(得分:5)
Zip这两个列表,并将结果列表元素用于create dictionaries。将字典组合成一个循环:
set_fact:
host_network_info: "{{ host_network_info | default([]) + [dict(interface=item[0], ip=item[1])] }}"
loop: "{{ ansible_interfaces | zip(host_ipv4_list) | list }}"