我正在尝试创建一个Ansible脚本,该脚本将首先创建所有唯一的脚本 blob_store,然后创建一个组并将存储库添加到该组。要存储的列表具有以下结构。
repo_list:
- {name: "repo1", url: "http://repo1.com", blob_store: "blob1", group: "group1"}
- {name: "repo2", url: "http://repo2.com", blob_store: "blob1", group: "group1"}
- {name: "repo3", url: "http://repo2.com", blob_store: "blob2", group: "group2"}
我可以使用以下命令获取唯一Blob的列表。
- name: Populate Blob List
set_fact:
blob_list: "{{ blob_list|default([])| union([ item.blob_store ]) }}"
with_items: "{{ repo_list }}"
这给出了一个输出blob_list: ["blob1","blob2"]
。然后我正在创建blob。
对于下一部分,我需要以以下格式提供每个组的存储库列表:
repo_groups: {
group1:["repo1","repo2"],
group2:["repo3"]
}
我无法合并回购清单。当我运行以下代码时,哈希不会在数组中添加项目,而是在替换项目。
- name: Populate Groups
set_fact:
repo_groups: "{{ repo_groups|default({}) | combine({item.group:[ item.name ]}) }}"
with_items: "{{ proxy_repos }}"
预期输出:
repo_groups: {
group1:["repo1","repo2"],
group2:["repo3"]
}
实际输出
repo_groups: {
group1:["repo2"],
group2:["repo3"]
}
有人可以帮助我将这些值组合在一起吗?