# Using multiple vars\_files

**URL:** <https://forum.ansible.com/t/using-multiple-vars-files/28359>\
**Category:** Ansible Project\
**Created:** [August 17, 2018, 6:55pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359 "2018-08-17T18:55:24Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ansible\_1](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@Ansible\_1](https://forum.ansible.com/u/Ansible_1)\
**Post date:** [August 17, 2018, 6:55pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/1 "2018-08-17T18:55:24Z")

</div>

My main question is how do I assign values of variables in var1 to dest1 and var2 to dest2

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [August 17, 2018, 7:03pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/2 "2018-08-17T19:03:15Z")

</div>

- hosts: localhost  
&nbsp;&nbsp;vars\_files:  
&nbsp;&nbsp;&nbsp;&nbsp;- vars/var1.yml  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: Ansible Template  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src: template.j2  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest: dest1

- hosts: localhost  
&nbsp;&nbsp;vars\_files:  
&nbsp;&nbsp;&nbsp;&nbsp;- vars/var2.yml  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: Ansible Template  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src: template.j2  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest: dest2

Other options: include\_vars before each one or add to task's vars:  
myvar: '{{lookup("file", "vars/varX.yml"}}}'

---

<div class="post-metadata">

**Author:** ![Ansible\_1](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@Ansible\_1](https://forum.ansible.com/u/Ansible_1)\
**Post date:** [August 17, 2018, 7:15pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/3 "2018-08-17T19:15:11Z")

</div>

I intend to use the same playbook. Not different playbooks like you suggest

---

<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:** [August 17, 2018, 8:42pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/4 "2018-08-17T20:42:43Z")

</div>

It is one playbook but two play.  
A playbook can have multiple plays in it.

---

<div class="post-metadata">

**Author:** ![Ansible\_1](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@Ansible\_1](https://forum.ansible.com/u/Ansible_1)\
**Post date:** [August 17, 2018, 9:10pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/5 "2018-08-17T21:10:31Z")

</div>

Can you give an example since one variable-file overwrites both plays for me

---

<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:** [August 17, 2018, 9:15pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/6 "2018-08-17T21:15:32Z")

</div>

Brian gave you an example that work perfectly.  
So the most productive is that you show us your code so we review it for potentially errors.

---

<div class="post-metadata">

**Author:** ![Ansible\_1](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@Ansible\_1](https://forum.ansible.com/u/Ansible_1)\
**Post date:** [August 17, 2018, 9:35pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/7 "2018-08-17T21:35:59Z")

</div>

#file: nyc.yml  
region: nyc  
db\_server: sql

#file: sg.yml  
region: sg  
db\_server: db2

#file: templates/temp.j2

location = {{ region }}

db\_server = {{ db\_server }}

## ansible-playbook:

- hosts: localhost  
vars\_files:
- vars/nyc.yml
- vars/sg.yml

tasks:

- name: Populating template  
template:  
src: temp.j2  
dest: {{ items }}  
with\_items:
- des/nyc.yml
- des/sg.yml

I want to populate des/nyc.yml from var/nyc.yml and des/sg.yml from var/sg.yml. How do I link var files to a particular file. Coz only the last loaded var file populates both des/nyc.yml and des/sg.yml.

---

<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:** [August 17, 2018, 10:17pm UTC](https://forum.ansible.com/t/using-multiple-vars-files/28359/8 "2018-08-17T22:17:36Z")

</div>

As Brian said you can use to plays.

But this in your playbook file and run it.

- hosts: localhost  
&nbsp;&nbsp;vars\_files:  
&nbsp;&nbsp;&nbsp;&nbsp;- vars/nyc.yml  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;- name: Populating template  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src: temp.j2  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest: /what/ever/dest/you/need1

- hosts: localhost  
&nbsp;&nbsp;vars\_files:  
&nbsp;&nbsp;&nbsp;&nbsp;- vars/sg.yml  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;- name: Populating template  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src: temp.j2  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest: /what/ever/dest/you/need2
