#dictionary #ansible #jinja2 #ansible-template
#словарь #ansible #jinja2 #ansible-шаблон
Вопрос:
Я хочу создать список словарей с помощью ansible. Я могу создавать словари, но не могу сохранить их в виде списка.
- name: Create list of dictionaries
set_fact:
file_set: "{{ file_set|default({}) | combine({ item.1:lookup('ini', '{{ item.1 }} section={{ item.0 }} file={{ properties_file }}') }) }}"
with_nested:
- [ "section1", "section2" ]
- [ "key1", "key2", "key3" ]
section_names — это список разделов в ini-файле properties_file
например, properties_file
[section1]
key1=value1
key2=value2
key3=value3
[section2]
key1=value4
key2=value5
key3=value6
file_set
это словарь, который содержит только section2
значения. Я хочу создать список словарей.
Ответ №1:
Поместите словарь в список ‘[]’ и объедините ‘ ‘ списки. Например
file_set: "{{ file_set|default([]) [{item.1: lookup( ... )}] }}"
Задачи, приведенные ниже
- set_fact:
file_set: "{{ file_set|default([])
[{item.1: lookup('ini', item.1 ~
' section=' ~ item.0 ~
' file=properties_file')}] }}"
with_nested:
- [section1, section2]
- [key1, key2, key3]
- debug:
var: file_set
дайте
file_set:
- key1: value1
- key2: value2
- key3: value3
- key1: value4
- key2: value5
- key3: value6