#list #ansible
#Список #ансибль
Вопрос:
списки могут быть разными по длине. Никаких внешних ключей между ними нет. Я просто хочу составить большой список из двух списков (умножить записи?)
вары:
список 1:
- item: "alpha"
key1: "value1"
key2: "value2"
- item: "beta"
key1: "value1"
key2: "value2"
список 2:
- add_key_to_each_1: "to_each_value_1"
- add_key_to_each_2: "to_each_value_2"
я хочу получить follow list3 с помощью некоторой задачи (set_fact):
- item: "alpha"
key1: "value1"
key2: "value2"
add_key_to_each_1: "to_each_value_1"
- item: "beta"
key1: "value1"
key2: "value2"
add_key_to_each_1: "to_each_value_1"
- item: "alpha"
key1: "value1"
key2: "value2"
add_key_to_each_2: "to_each_value_2"
- item: "beta"
key1: "value1"
key2: "value2"
add_key_to_each_2: "to_each_value_2"
Ответ №1:
Задача, приведенная ниже, выполняет эту работу
- set_fact:
list3: "{{ list3|default([]) [item.0|combine(item.1)] }}"
with_cartesian:
- "{{ list2 }}"
- "{{ list1 }}"
- debug:
var: list3
дает
list3:
- add_key_to_each_1: to_each_value_1
item: alpha
key1: value1
key2: value2
- add_key_to_each_1: to_each_value_1
item: beta
key1: value1
key2: value2
- add_key_to_each_2: to_each_value_2
item: alpha
key1: value1
key2: value2
- add_key_to_each_2: to_each_value_2
item: beta
key1: value1
key2: value2
Комментарии:
1. «with_cartesian». Большое вам спасибо. Это будет очень полезно для меня в будущем.