Ansible:如何修改目录列表
我想使用从IPAM获取的IP地址的新条目修改hostvars中列表中的DICTAnsible:如何修改目录列表,ansible,jinja2,Ansible,Jinja2,我想使用从IPAM获取的IP地址的新条目修改hostvars中列表中的DICT { "vm_guest_networks": [ { "device_type": "vmxnet3", "state": "present", "subnet": "10.91.1.0/24" }, { "device_type": "vmxnet3", "state": "present", "subnet": "
{
"vm_guest_networks": [
{
"device_type": "vmxnet3",
"state": "present",
"subnet": "10.91.1.0/24"
},
{
"device_type": "vmxnet3",
"state": "present",
"subnet": "10.91.0.0/24"
}
]
}
在一个循环中,我有子网来标识正确的dict和我想用ipv4\u地址键添加的IP地址,因此结果应该如下所示:
{
"vm_guest_networks": [
{
"device_type": "vmxnet3",
"state": "present",
"subnet": "10.91.1.0/24",
"ipv4_address": "10.91.1.216"
},
{
"device_type": "vmxnet3",
"state": "present",
"subnet": "10.91.0.0/24",
"ipv4_address": "10.91.0.21"
}
]
}
当前WIP ansible代码位于让我们假设IP列表可用。比如说
ip4: [10.91.1.216, 10.91.0.21]
- set_fact:
mydata: "{{ mydata|default([]) +
[item|combine({'ipv4_address': ip4[ansible_loop.index0]})] }}"
loop: "{{ vm_guest_networks }}"
loop_control:
extended: yes
- set_fact:
vm_guest_networks: "{{ mydata }}"
- debug:
var: vm_guest_networks
让我们使用filter和来创建一个新列表,其中每个字典都将被更新。比如说
ip4: [10.91.1.216, 10.91.0.21]
- set_fact:
mydata: "{{ mydata|default([]) +
[item|combine({'ipv4_address': ip4[ansible_loop.index0]})] }}"
loop: "{{ vm_guest_networks }}"
loop_control:
extended: yes
- set_fact:
vm_guest_networks: "{{ mydata }}"
- debug:
var: vm_guest_networks
给予
假设IP列表可用。比如说
ip4: [10.91.1.216, 10.91.0.21]
- set_fact:
mydata: "{{ mydata|default([]) +
[item|combine({'ipv4_address': ip4[ansible_loop.index0]})] }}"
loop: "{{ vm_guest_networks }}"
loop_control:
extended: yes
- set_fact:
vm_guest_networks: "{{ mydata }}"
- debug:
var: vm_guest_networks
让我们使用filter和来创建一个新列表,其中每个字典都将被更新。比如说
ip4: [10.91.1.216, 10.91.0.21]
- set_fact:
mydata: "{{ mydata|default([]) +
[item|combine({'ipv4_address': ip4[ansible_loop.index0]})] }}"
loop: "{{ vm_guest_networks }}"
loop_control:
extended: yes
- set_fact:
vm_guest_networks: "{{ mydata }}"
- debug:
var: vm_guest_networks
给予