# generate config file from template with N dimensional array

**URL:** <https://forum.ansible.com/t/generate-config-file-from-template-with-n-dimensional-array/14605>\
**Category:** Ansible Project\
**Created:** [February 20, 2014, 11:27am UTC](https://forum.ansible.com/t/generate-config-file-from-template-with-n-dimensional-array/14605 "2014-02-20T11:27:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jepper](https://avatars.discourse-cdn.com/v4/letter/j/49beb7/32.png) [@jepper](https://forum.ansible.com/u/jepper)\
**Post date:** [February 20, 2014, 11:27am UTC](https://forum.ansible.com/t/generate-config-file-from-template-with-n-dimensional-array/14605/1 "2014-02-20T11:27:56Z")

</div>

I use roles and testXX/group\_vars/all to define a great many things for each environments.

I have to build xml files that contain two values at least in each iteration. The example below has pool1 and pool2, and within those pools we have server1, server2 etc.

I can’t get my head around how to template this, and how to define arrays in group\_vars to work with the templates and/or playbook. I hope this makes sense.

pool1 server1 hostname1 /path/to/somewhere server3 hostname2 /path/to/somewhere pool2 server2 hostname3 /path/to/somewhere server2 hostname4 /path/to/somewhere

I would like my all file to be something like  
pools:

- pool1
- server1, hostname1
- server3, hostname2
- pool2
- server2, hostname3  
etc

---

<div class="post-metadata">

**Author:** ![Adam\_Morris](https://avatars.discourse-cdn.com/v4/letter/a/ecae2f/32.png) [@Adam\_Morris](https://forum.ansible.com/u/Adam_Morris)\
**Post date:** [February 20, 2014, 10:41pm UTC](https://forum.ansible.com/t/generate-config-file-from-template-with-n-dimensional-array/14605/2 "2014-02-20T22:41:37Z")

</div>

I don’t have anything quite this complicated, but I think that you should be able to do something like this…

pool\_list:

- { name: pool1, server\_list: {name: server1, hostname: hostname1, }, {name: server2, hostname: hostname2} }
- { name: pool2, server\_list: {name: server3, hostname: hostname3}, {name: server4, hostname: hostname4} }

{% for item in pool\_list %}

{{ item.name }} {% for server in item.server\_list %} {{ server.name }} {{ server.hostname }} /path/to/somewhere

{% endfor %}  
  
{% endfor %}

I’ve never tried this, but it might be worth looking at…

Adam
