On 05.12.2018 23:29, Karl Auer wrote:
I am trying to process a nested data structure and can't find a
suitable
syntax to let me do it. Ansible only seems to allow one level of
looping,
or two with sub-elements.
Given a data structure like this:
vars:
vpcs:
name: blah
cidr: 10.10.0.0/19
tiers:
- name: tier1
subnets:
- name: subnet1
cidr: 10.10.10.0/24
[... more subnets ...]
[... more tiers ...]
[... more VPCs ...]
... how do I do the equivalent of:
for each VPC
for each tier
for each subnet
create subnet
I.e., three nested levels?
I don't have to do it this way; I can flatten the data structures, but
the
data structure is naturally nested, so it would be nice to be able to
use
it in that form.
I guess vpcs is also a list, you just forgot the dash?
If so you can go "old" school and user include_tasks with with_items
that support many nested levels.
vpcs.yml
---
- include_tasks: tires.yml
with_items: '{{ vpcs }}'
tires.yml
---
- include_tasks: subnets.yml
with_items: '{{ item.tiers }}'
subnets.yml
---
- name: task
.....
--
Kai Stian Olstad
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/b53125acbbcbd3140f9cd5bdded4ceb3%40olstad.com.
For more options, visit https://groups.google.com/d/optout.