Reputation: 121
I want to create list of dictionaries using ansible. I am able to create dictionaries but I am unable to save them in a list.
- 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 - is a list of sections in the ini file properties_file
e.g., properties_file
[section1]
key1=value1
key2=value2
key3=value3
[section2]
key1=value4
key2=value5
key3=value6
file_set
is the dictionary which contains only the section2
values. I want to create the list of dictionaries.
Upvotes: 1
Views: 795
Reputation: 68384
Put the dictionary into a list '[]' and concatenate '+' the lists. For example
file_set: "{{ file_set|default([]) + [{item.1: lookup( ... )}] }}"
The tasks below
- 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
give
file_set:
- key1: value1
- key2: value2
- key3: value3
- key1: value4
- key2: value5
- key3: value6
Upvotes: 2