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.

Reply via email to