将独特的字典列表与ansible相结合

时间:2019-06-25 07:54:03

标签: python ansible

我在ansible中有两个列表:

toto:
  - name: titi
  - name: tata

titi:
  - name: titi
    ack: true

是否可以通过名称键将这两个列表合并以获取以下信息:

new_list:
  - name: titi
    ack: true
  - name: tata

我不知道是否可以执行以下操作来组合字典,组合列表。

谢谢。

1 个答案:

答案 0 :(得分:1)

Q:Is it possible to combine these two lists by the name key?

A:是的。过滤器selectattr是可能的。以下任务

- set_fact:
    new_list: "{{ new_list|default([]) +
                  [ item|
                    combine(titi|selectattr('name', 'match', item.name)|
                    list) ] }}"
  loop: "{{ toto }}"
- debug:
    var: new_list

给予

"new_list": [
    {
        "ack": true, 
        "name": "titi"
    }, 
    {
        "name": "tata"
    }
]