У меня есть книга воспроизведения, которая возвращает следующий вывод:
ok: [Lab_Core_SW] => {
"Test_List": [
{
"Firewall_IP": "10.120.193.100",
"IP_Address": "10.120.0.0",
"IP_and_Mask": "10.120.0.0/16",
"Subnet_Mask": "16",
"VRF_Name": "vrf1"
},
{
"Firewall_IP": "10.120.160.36",
"IP_Address": "10.120.46.0",
"IP_and_Mask": "10.120.46.0/25",
"Subnet_Mask": "25",
"VRF_Name": "vrf2"
},
{
"Firewall_IP": "10.120.187.68",
"IP_Address": "10.120.0.0",
"IP_and_Mask": "10.120.0.0/16",
"Subnet_Mask": "16",
"VRF_Name": "vrf3"
},
{
"Firewall_IP": "10.109.1.66",
"IP_Address": "10.0.0.0",
"IP_and_Mask": "10.0.0.0/8",
"Subnet_Mask": "8",
"VRF_Name": "vrf4"
},
{
"Firewall_IP": "10.120.184.68",
"IP_Address": "10.120.0.0",
"IP_and_Mask": "10.120.0.0/16",
"Subnet_Mask": "16",
"VRF_Name": "vrf5"
}
]
}
Есть ли способ, которым я могу взять Subnet_Mask каждого элемента в списке и найти число, ближайшее к 32, а затем только распечатать этоэлемент в списке, поэтому у меня осталось следующее:
{
"Firewall_IP": "10.120.160.36",
"IP_Address": "10.120.46.0",
"IP_and_Mask": "10.120.46.0/25",
"Subnet_Mask": "25",
"VRF_Name": "vrf2"
}
Я не хочу использовать when: item.Subnet_Mask >= x
, так как это может либо вернуть более одного результата, либо ни одного, в зависимости от маршрутов наосновной коммутатор.
Я посмотрел на фильтр ipaddr, но, похоже, он не имеет того, что мне нужно.
Я знаю о лямбда-функции в python, но если я могу каким-либо образом связать ее с ansible, я не смог выяснить, как.
Любая помощь приветствуется