我有两个清单:
"combo_all": [
[
null,
"3",
"210
],
[
"r0004",
"65",
"212"
]
和
"zone_name_list": [
{
"dns_zone_id": 10423,
"name": "212.18.172.in-addr.arpa."
},
{
"dns_zone_id": 10424,
"name": ""210.18.172.in-addr.arpa."."
}
每当“name”中的第一个八位字节与第一个列表中的第三个项目(210, 212)匹配时,如何用“dns_zone_id”数字(来自第二个列表)替换“combo_all”(第一个列表)中的第三个项目?
创建字典octet1_id
给出
然后创建一个列表
给出
用于测试的完整剧本示例
一般来说,Ansible 并不是一个修改数据结构的好工具。通过执行以下操作,您可以通过使用所需内容创建一个新变量来接近您想要的内容:
这将设置
new_combo_all
为:combo_all
它的工作原理是迭代 和的笛卡尔积,仅选择前缀八位组等于 的子列表的第三个成员的zone_name_list
那些对,并使用它来生成变量。name
combo_all
new_combo_all