我有一个变量host_list,这是所有主机的不同列表。 我正在寻找一种使host_list跨主机联合的方法。 意思是,我想让total_list包含所有主机的host_list的所有元素。
输入:
- fe1: [ "W", "Z" ]
- be1: [ "Z", "X" ]
输出: total_list:[“ W”,“ Z”,“ X”}
我该怎么办?
谢谢, 拉乌尔
答案 0 :(得分:0)
简单的选择是使用json_query
- set_fact:
union_list: "{{ hostvars|json_query('[].host_list')|flatten|unique }}"
答案 1 :(得分:0)
广告资源中的两组
array([[ 1. , 3. ],
[ 1.33, 4.2 ],
[17.83, 3.4 ],
[ 1.67, 5.4 ],
[18.6 , 12.51]])
联盟:
cat hosts
[group1]
a
b
c
[group2]
b
d
e
f
答案 2 :(得分:0)
好吧,我终于找到了:
- name: union list accross hosts
set_fact:
union_list: "{{ union_list | default([]) | union(hostvars[item]['host_list']) }}"
run_once: true
with_items: "{{ groups['all'] }}"