ansible Как сделать объединение списка по хостам - PullRequest
0 голосов
/ 14 июня 2019

У меня есть переменная host_list, которая является другим списком для всех хостов.Я ищу способ сделать объединение host_list по хостам.Это значит, что я хотел бы иметь total_list, содержащий все элементы host_list всего хоста.

Ввод:

- fe1: [ "W", "Z" ] - be1: [ "Z", "X" ]

Ouput: total_list: ["W","Z", "X"}

Как я могу это сделать?

Спасибо, Рауль

Ответы [ 3 ]

0 голосов
/ 15 июня 2019

две группы в инвентаре

cat hosts
[group1]
a
b
c
[group2]
b
d
e
f

союз:

ansible -i hosts group1:group2 --list-hosts
  hosts (6):
    a
    b
    c
    d
    e
    f
0 голосов
/ 15 июня 2019

Ну, я наконец-то нашел это:

- name: union list accross hosts 
  set_fact: 
    union_list: "{{ union_list | default([]) | union(hostvars[item]['host_list']) }}" 
  run_once: true 
  with_items: "{{ groups['all'] }}"
0 голосов
/ 14 июня 2019

Простой вариант - использовать json_query

- set_fact:
    union_list: "{{ hostvars|json_query('[].host_list')|flatten|unique }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...