---
- name: combine lists
hosts: localhost
vars:
- level1keyA:
- hostname: foo
state: present
path:
- left
- hostname: bar
state: present
addonpath:
- righthere
path:
- "{{ WHAT TO WRITE HERE? }}"
- level1keyB:
- right
- middle
- top
tasks:
- name: result of level1keyA
debug:
msg: "{{ level1keyA }}"
- name: result of level1keyB
debug:
msg: "{{ level1keyB }}"level1keyB in the path list of the hostname bar. The key 'addonpath' is just an guessed construct by me. Maybe this would also work.
- level1keyA:
- hostname: foo
state: present
path:
- left
- hostname: bar
state: present
path:
- righthere
- "{{ entries of level1keyB }}"
But how to do it in practise?
Thank you.
path: "{{ ['righthere'] | union(level1keyB) }}"
--
- name: combine lists
hosts: localhost
vars:
- level1keyA:
- hostname: foo
state: present
path:
- left
- hostname: bar
state: present
path:
- righthere
- "{{ ['righthere'] |union (level1keyB) }}"
- level1keyB:
- right
- middle
- top
tasks:
- name: result of level1keyA
debug:
msg: "{{ level1keyA }}"
- name: result of level1keyB
debug:
msg: "{{ level1keyB }}"
:~/ansible ansible-playbook test.yml
PLAY [combine lists] ***********************************************************
TASK [setup] *******************************************************************
Friday 01 April 2016 08:47:45 +0200 (0:00:00.016) 0:00:00.017 **********
ok: [localhost]
TASK [result of level1keyA] ****************************************************
Friday 01 April 2016 08:47:46 +0200 (0:00:00.599) 0:00:00.616 **********
ok: [localhost] => {
"msg": [
{
"hostname": "foo",
"path": [
"left"
],
"state": "present"
},
{
"hostname": "bar",
"path": [
"righthere",
[
"righthere",
"right",
"middle",
"top"
]
],
"state": "present"
}
]
}
TASK [result of level1keyB] ****************************************************
Friday 01 April 2016 08:47:46 +0200 (0:00:00.030) 0:00:00.646 **********
ok: [localhost] => {
"msg": [
"right",
"middle",
"top"
]
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
---
- name: combine lists
hosts: localhost
vars:
- level1keyA:
- hostname: foo
state: present
path:
- left
- hostname: bar
state: present
path:
- righthere
- peter
- paul
- mary
- "{{ WHAT NOW HERE? |union (level1keyB) }}"
- level1keyB:
- right
- middle
- top
tasks:
- name: result of level1keyA
debug:
msg: "{{ level1keyA }}"
- name: result of level1keyB
debug:
msg: "{{ level1keyB }}"
---- hosts: localhost gather_facts: no vars: - simple: - right - middle - top - nested: - hostname: foo path: - left - hostname: bar path: - blue - green - yellow - "{{ simple }}"
tasks: - name: content of nested debug: msg: "{{ nested }}"PLAY [localhost] ***************************************************************
TASK [content of nested] *******************************************************Wednesday 31 August 2016 08:55:13 +0200 (0:00:00.025) 0:00:00.025 ****** ok: [localhost] => { "msg": [ { "hostname": "foo", "path": [ "left" ] }, { "hostname": "bar", "path": [ "blue", "green", "yellow", [ "right", "middle", "top" ] ] } ]}
PLAY RECAP *********************************************************************localhost : ok=1 changed=0 unreachable=0 failed=0 PLAY [localhost] ***************************************************************
TASK [content of nested] *******************************************************Wednesday 31 August 2016 08:55:13 +0200 (0:00:00.025) 0:00:00.025 ****** ok: [localhost] => { "msg": [ { "hostname": "foo", "path": [ "left" ] }, { "hostname": "bar", "path": [ "blue", "green", "yellow", "right", "middle", "top", ] } ]}
PLAY RECAP *********************************************************************localhost : ok=1 changed=0 unreachable=0 failed=0