# Ansible ignoring Ubuntu yml file

**URL:** <https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633>\
**Category:** Ansible Project\
**Tags:** ubuntu\
**Created:** [October 29, 2014, 2:49pm UTC](https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633 "2014-10-29T14:49:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vikas\_Kumar](https://avatars.discourse-cdn.com/v4/letter/v/ecb155/32.png) [@Vikas\_Kumar](https://forum.ansible.com/u/Vikas_Kumar)\
**Post date:** [October 29, 2014, 2:49pm UTC](https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633/1 "2014-10-29T14:49:33Z")

</div>

Hello Everyone,

I am new to Ansible world. I am just trying to create a small playbook to install apache2 on Debian 7.4 and Ubuntu14.04 servers.  
I have defined few variables in two different yml files - Ubuntu.yml and Debian.yml

My problem is that ansible is ignoring everything is Ubuntu.yml and keep reading variables from Debian.yml. I commented out everything in Ubuntu.yml, still my playbook ran fine as Ansible took values from Debian.yml.

This is a part of my playbook.  
`

- include: Ubuntu.yml  
when: ansible\_os\_family == “Debian” and ansible\_distribution == “Ubuntu”

- include: Debian.yml  
when: ansible\_os\_family == “Debian” and ansible\_distribution == “Debian”  
`

Am I missing anything ?

Regards,  
Vikas

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [October 30, 2014, 8:43pm UTC](https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633/2 "2014-10-30T20:43:12Z")

</div>

This statement will always be False, I think you want “or”:

ansible\_os\_family == “Debian” and ansible\_distribution == “Ubuntu”

---

<div class="post-metadata">

**Author:** ![Vikas\_Kumar](https://avatars.discourse-cdn.com/v4/letter/v/ecb155/32.png) [@Vikas\_Kumar](https://forum.ansible.com/u/Vikas_Kumar)\
**Post date:** [October 31, 2014, 5:20am UTC](https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633/3 "2014-10-31T05:20:56Z")

</div>

Hi Michael,

I am not sure how would “or” work (though I have tried and it doesn’t) over here. Generally, statement is true in ‘and’ clause when both the conditions are true, which are true in this case.

`root@ansible:~# ansible box92.test.com -m setup | egrep -w 'ansible_os_family|ansible_distribution' "ansible_distribution": "Ubuntu", "ansible_os_family": "Debian", root@ansible:~# root@ansible:~# ansible box93.test.com -m setup | egrep -w 'ansible_os_family|ansible_distribution' "ansible_distribution": "Debian", "ansible_os_family": "Debian", root@ansible:~#`

I have two Debian based distros - **Ubuntu 14.04** and **Debian 7.40**

Ideally,

- include: Ubuntu.yml  
when: ansible\_os\_family == “Debian” and ansible\_distribution == “Ubuntu” (Should pick up vars/Ubuntu.yml)

- include: Debian.yml  
when: ansible\_os\_family == “Debian” and ansible\_distribution == “Debian” (Should pick up vars/Debian.yml)

I even tried this, but still Ansible pick up variables defined in **vars/Debian.yml** ☹

`

- include: Ubuntu.yml  
when: ansible\_distribution == “Ubuntu”

- include: Debian.yml  
when: ansible\_distribution == “Debian”  
`

Or is it ansible only works with ‘ansible\_os\_family’ fact.

Is there an alternative to do this ?

Regards,  
Vikas

---

<div class="post-metadata">

**Author:** ![Vikas\_Kumar](https://avatars.discourse-cdn.com/v4/letter/v/ecb155/32.png) [@Vikas\_Kumar](https://forum.ansible.com/u/Vikas_Kumar)\
**Post date:** [October 31, 2014, 6:25am UTC](https://forum.ansible.com/t/ansible-ignoring-ubuntu-yml-file/16633/4 "2014-10-31T06:25:33Z")

</div>

Hi Michael,

Thanks for your time on this. I got what I was missing. I was including the variable file with ansible\_os\_family, I should have used ansible\_distribution instead. My bad.

This worked like a charm.

`include_vars: "{{ ansible_distribution }}.yml"`

Regards,  
Vikas
