Ansible 多列表的YAML相交
我需要找到多个列表的交集 我知道两个列表的交集是这样的Ansible 多列表的YAML相交,ansible,ansible-2.x,Ansible,Ansible 2.x,我需要找到多个列表的交集 我知道两个列表的交集是这样的 -设置事实: 最终的_列表:{{tag_info.results[0].vm_列表| intersect(tag_info.results[1].vm_列表)}” 我需要相同的N个列表。有人能帮忙吗。下面的任务可以完成这项工作 "tag_info": { "changed": false, "msg": "All items completed", "results": [
-设置事实:
最终的_列表:{{tag_info.results[0].vm_列表| intersect(tag_info.results[1].vm_列表)}”
我需要相同的N个列表。有人能帮忙吗。下面的任务可以完成这项工作
"tag_info": {
"changed": false,
"msg": "All items completed",
"results": [
{"vm_list": ["NSY6TFSANSBL01"]},
{"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02"]},
{"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02", "NSY6TFSANSBL03"]}
]
}
给予
固定数据
"final_list": [
[
"NSY6TFSANSBL01"
],
[
"NSY6TFSANSBL01",
"NSY6TFSANSBL02"
]
]
Q:“标记信息下所有列表的交集。结果可以是N个vm\U列表对象。” 答:从第一个
vm_列表
对象开始,而不是添加下一个vm_列表
对象。比如说
tag_info:
changed: false
msg: "All items completed"
results:
- {"vm_list": ["NSY6TFSANSBL01"]}
- {"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02"]}
- {"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02", "NSY6TFSANSBL03"]}
给予
有人能帮忙吗。
tag_info:
changed: false
msg: "All items completed"
results:
- {"vm_list": ["NSY6TFSANSBL01"]}
- {"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02"]}
- {"vm_list": ["NSY6TFSANSBL01", "NSY6TFSANSBL02", "NSY6TFSANSBL03"]}
- set_fact:
final_list: "{{ final_list|
default(tag_info.results.0.vm_list)|
intersect(tag_info.results[item].vm_list) }}"
loop: "{{ range(1, tag_info.results|length, 1)|list }}"
- debug:
var: final_list
"final_list": [
"NSY6TFSANSBL01"
]