Например
- set_fact:
х: "{{ _dict|from_yaml }}"
вары:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ stdout|regex_replace(_regex, '\1') }}"
_val: "{{ stdout|regex_replace(_regex, '\2') }}"
_дикт: |
{{ _ключ }}:
{% для i в _val.split() %}
{{ я|regex_replace(':', ': ') }}
{% конец для %}
дает
Икс:
карта:
ключ1: значение1
ключ2: значение2
ключ3: значение3
Если бы было больше строк, например.
стандартные_линии:
- "карта1[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
- "карта2[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
- "карта3[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
было бы возможно комбинировать словарь, например
- set_fact:
х: "{{ х|d({})|объединить(_dict|from_yaml) }}"
цикл: "{{ stdout_lines }}"
вары:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ item|regex_replace(_regex, '\1') }}"
_val: "{{ item|regex_replace(_regex, '\2') }}"
_дикт: |
{{ _ключ }}:
{% для i в _val.split() %}
{{ я|regex_replace(':', ': ') }}
{% конец для %}
дает
Икс:
карта1:
ключ1: значение1
ключ2: значение2
ключ3: значение3
карта2:
ключ1: значение1
ключ2: значение2
ключ3: значение3
карта3:
ключ1: значение1
ключ2: значение2
ключ3: значение3
Если ключи повторялись, например.
стандартные_линии:
- "карта[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
- "карта[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
- "карта[ключ1:значение1 ключ2:значение2 ключ3:значение3]"
можно было бы объединить список, например.
- set_fact:
х: "{{ х|d([]) + [_dict|from_yaml] }}"
цикл: "{{ stdout_lines }}"
вары:
_regex: '^(.*)\[(.*)\](.*)$'
_key: "{{ item|regex_replace(_regex, '\1') }}"
_val: "{{ item|regex_replace(_regex, '\2') }}"
_дикт: |
{{ _ключ }}:
{% для i в _val.split() %}
{{ я|regex_replace(':', ': ') }}
{% конец для %}
дает
Икс:
- карта:
ключ1: значение1
ключ2: значение2
ключ3: значение3
- карта:
ключ1: значение1
ключ2: значение2
ключ3: значение3
- карта:
ключ1: значение1
ключ2: значение2
ключ3: значение3