# roles - apply variable values from /defaults/main.yml

**URL:** <https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228>\
**Category:** Ansible Project\
**Created:** [January 20, 2022, 4:15pm UTC](https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228 "2022-01-20T16:15:42Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dulhaver](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/dulhaver/32/1061_2.png) [@dulhaver](https://forum.ansible.com/u/dulhaver)\
**Post date:** [January 20, 2022, 4:15pm UTC](https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228/1 "2022-01-20T16:15:42Z")

</div>

using roles with this type of structure and face a problem with variable values apparently not being applied from the /defaults/main.yml

role01

> \_\_/tasks

> >

> > \_\_main.yml

> 

> \_\_/defaults

> 

> \_\_main.yml

As far my understanding goes the /tasks/main.yml should read the variables from /defaults/main.yml no matter what (without any vars\_files: declaration. Is that understanding correct?

If not, how exactly do I have to reference the /defaults/main.yml ?

---

<div class="post-metadata">

**Author:** ![vbotka](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/vbotka/32/359_2.png) [@vbotka](https://forum.ansible.com/u/vbotka)\
**Post date:** [January 20, 2022, 4:39pm UTC](https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228/2 "2022-01-20T16:39:23Z")

</div>

> As far my understanding goes the /tasks/main.yml should read the variables from /defaults/main.yml no matter what (without any vars\_files: declaration. Is that understanding correct?

Yes. This is correct. For example

> tree roles

roles  
└── role01  
&nbsp;&nbsp;&nbsp;&nbsp;├── defaults  
&nbsp;&nbsp;&nbsp;&nbsp;│ └── main.yml  
&nbsp;&nbsp;&nbsp;&nbsp;└── tasks  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── main.yml

3 directories, 2 files

> cat roles/role01/defaults/main.yml

test\_var: Hello

> cat roles/role01/tasks/main.yml

- debug:  
&nbsp;&nbsp;&nbsp;&nbsp;var: test\_var

> cat playbook.yml

- hosts: localhost  
&nbsp;&nbsp;roles:  
&nbsp;&nbsp;&nbsp;&nbsp;- role01

> ansible-playbook playbook.yml

gives (abridged)

TASK [role01 : debug]

---

<div class="post-metadata">

**Author:** ![dulhaver](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/dulhaver/32/1061_2.png) [@dulhaver](https://forum.ansible.com/u/dulhaver)\
**Post date:** [January 20, 2022, 6:47pm UTC](https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228/3 "2022-01-20T18:47:20Z")

</div>

so, that is a clear yes (and great little exercise) then.  
I'll have to figure out, why it does't work atm

thx for sharing

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [January 21, 2022, 6:50am UTC](https://forum.ansible.com/t/roles-apply-variable-values-from-defaults-main-yml/36228/4 "2022-01-21T06:50:39Z")

</div>

> so, that is a clear yes (and great little exercise) then.  
> I'll have to figure out, why it does't work atm
> 
> thx for sharing

Well to get help you need to elaborate on "why it does't work atm".

The variables in defaults/main.yml do have very low priority BTW.

Regards

```
           Racke

```
