De exemplu
- set_fact:
x: „{{ _dict|from_yaml }}”
vars:
_regex: „^(.*)\[(.*)\](.*)$”
_key: „{{ stdout|regex_replace(_regex, '\1') }}”
_val: „{{ stdout|regex_replace(_regex, '\2') }}"
_dict: |
{{ _key }}:
{% pentru i în _val.split() %}
{{ i|regex_replace(':', ':') }}
{% endfor %}
dă
X:
Hartă:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
Dacă ar fi mai multe rânduri, de ex.
stdout_lines:
- „map1[key1:value1 key2:value2 key3:value3]”
- „map2[key1:value1 key2:value2 key3:value3]”
- „map3[key1:value1 key2:value2 key3:value3]”
ar fi posibil să combina dicționarul, de ex.
- set_fact:
x: „{{ x|d({})|combină(_dict|din_yaml) }}”
buclă: „{{ stdout_lines }}”
vars:
_regex: „^(.*)\[(.*)\](.*)$”
_key: „{{ item|regex_replace(_regex, '\1') }}”
_val: „{{ item|regex_replace(_regex, '\2') }}”
_dict: |
{{ _key }}:
{% pentru i în _val.split() %}
{{ i|regex_replace(':', ':') }}
{% endfor %}
dă
X:
harta 1:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
harta 2:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
harta 3:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
Dacă tastele se repetau, de ex.
stdout_lines:
- „hartă[cheie1:valoare1 cheie2:valoare2 cheie3:valoare3]”
- „hartă[cheie1:valoare1 cheie2:valoare2 cheie3:valoare3]”
- „hartă[cheie1:valoare1 cheie2:valoare2 cheie3:valoare3]”
ar fi posibilă concatenarea unei liste, de ex.
- set_fact:
x: „{{ x|d([]) + [_dict|from_yaml] }}”
buclă: „{{ stdout_lines }}”
vars:
_regex: „^(.*)\[(.*)\](.*)$”
_key: „{{ item|regex_replace(_regex, '\1') }}”
_val: „{{ item|regex_replace(_regex, '\2') }}”
_dict: |
{{ _key }}:
{% pentru i în _val.split() %}
{{ i|regex_replace(':', ':') }}
{% endfor %}
dă
X:
- Hartă:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
- Hartă:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3
- Hartă:
cheia1: valoare1
cheia2: valoare2
cheia3: valoarea3