Sziasztok
adott egy ansible-playbook
benne a következő deklarációval:
vars:
gyumolcsok:
alma:
szin: piros
forma: gomb
korte:
szin: sargas
forma: korte
szilva:
szin: lila
forma: tojasdadkosar:
alma:
korte:
kell egy eljaras aminek a vegen a kosar tartalma ez lesz:
kosar:
alma:
szin: piros
forma: gomb
korte:
szin: saragas
forma: korte
vagyis egyszeruen foglalmazva egy nagy adatbazisbol ki kell masolnom egy dict-et (gyumolcsok.alma) es a kosar.alma.value -t erre (gyumolcsok.alma) modositani.
- 183 megtekintés
Hozzászólások
Igy?
---
- name: Gyumolcsok
hosts: localhost
gather_facts: false
vars:
gyumolcsok:
alma:
szin: piros
forma: gomb
korte:
szin: sargas
forma: korte
szilva:
szin: lila
forma: tojasdad
tasks:
- set_fact:
kosar: "{{ kosar|default({}) | combine( { item.key: item.value } )}}"
loop: "{{ gyumolcsok|dict2items }}"
- debug:
var: kosar
- A hozzászóláshoz be kell jelentkezni
Szia, sajnos itt nem az elvart eredmenyt kapom:
$ ansible-playbook kosar.yml PLAY [Gyumolcsok] ******************************************************************************************************************************************************** [started TASK: set_fact on localhost] TASK [set_fact] ********************************************************************************************************************************************************** ok: [localhost] => (item={'key': 'alma', 'value': {'szin': 'piros', 'forma': 'gomb'}}) ok: [localhost] => (item={'key': 'korte', 'value': {'szin': 'sargas', 'forma': 'korte'}}) ok: [localhost] => (item={'key': 'szilva', 'value': {'szin': 'lila', 'forma': 'tojasdad'}}) [started TASK: debug on localhost] TASK [debug] ************************************************************************************************************************************************************* ok: [localhost] => { "kosar": { "alma": { "forma": "gomb", "szin": "piros" }, "korte": { "forma": "korte", "szin": "sargas" }, "szilva": { "forma": "tojasdad", "szin": "lila" } } }
pont az lenne a lényeg, hogy a kosárba definiált tartalom megtöltődjön value -val, viszont ne kerüljön bele új tétel (key vagyis újabb gyümölcs)
- A hozzászóláshoz be kell jelentkezni
OK, ezek szerint felrertettem mit is akrasz.
- A hozzászóláshoz be kell jelentkezni
A combine kell neked, pl:
- name: Kosar
set_fact:
"kosar": "{{ kosar | combine({ item.key: item.value }, recursive=True) }}"
with_dict: "{{ gyumolcsok }}"
when: kosar[item.key] is defined
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez bevállt.
- A hozzászóláshoz be kell jelentkezni
bevált
- A hozzászóláshoz be kell jelentkezni
bookmark
- A hozzászóláshoz be kell jelentkezni
Nem értem a példát, a gyümölcsöket lecserélted kosárra? Tudsz inkább gyakorlati példát hozni? Tudom, megoldódott, de érdekelne.
- A hozzászóláshoz be kell jelentkezni