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"
    ]