# iterate over vars\[dict\_name\] for multiple dicts

**URL:** <https://forum.ansible.com/t/iterate-over-vars-dict-name-for-multiple-dicts/25981>\
**Category:** Ansible Project\
**Created:** [November 10, 2017, 2:14am UTC](https://forum.ansible.com/t/iterate-over-vars-dict-name-for-multiple-dicts/25981 "2017-11-10T02:14:25Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rajesh\_Rajendran](https://avatars.discourse-cdn.com/v4/letter/r/7ea924/32.png) [@Rajesh\_Rajendran](https://forum.ansible.com/u/Rajesh_Rajendran)\
**Post date:** [November 10, 2017, 2:14am UTC](https://forum.ansible.com/t/iterate-over-vars-dict-name-for-multiple-dicts/25981/1 "2017-11-10T02:14:25Z")

</div>



---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [November 10, 2017, 9:23am UTC](https://forum.ansible.com/t/iterate-over-vars-dict-name-for-multiple-dicts/25981/2 "2017-11-10T09:23:15Z")

</div>

> ---  
> - hosts: localhost  
> &nbsp;&nbsp;gather\_facts: false  
> &nbsp;&nbsp;vars:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;neo4j:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: neo4j  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;api\_service:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: api\_service  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid: /var/api/pid  
> &nbsp;&nbsp;tasks:  
> &nbsp;&nbsp;&nbsp;&nbsp;- debug:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg: "{{item.pid|default('/var/run/{{item.name}}/{{item.name}}.pid')}}"

You cant't nest {{ }}

> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "{{ vars[service] }}"
> 
> ansible-playbook play.yml --extra-vars service=api-service
> 
> how will I debug both dictionaries?  
> &nbsp;&nbsp;I know that I can't give  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--extra-vars service=api-service,neo4j or as a llist
> 
> or is there any way to dynamically iterate using user given dictionaries.

You could do something like this

&nbsp;&nbsp;&nbsp;- debug:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg: "{{ vars[item].pid | default('/var/run/' ~ vars[item].name ~ '/' ~ vars[item].name ~ '.pid')}}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "{{ service.split(',') }}"

And then you can use a comma separated values in --extra-vars

---

<div class="post-metadata">

**Author:** ![Rajesh\_Rajendran](https://avatars.discourse-cdn.com/v4/letter/r/7ea924/32.png) [@Rajesh\_Rajendran](https://forum.ansible.com/u/Rajesh_Rajendran)\
**Post date:** [November 10, 2017, 11:32am UTC](https://forum.ansible.com/t/iterate-over-vars-dict-name-for-multiple-dicts/25981/3 "2017-11-10T11:32:00Z")

</div>

Thank you, dude.  
It worked perfectly.
