# Set variable before hosts in playbook?

**URL:** <https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161>\
**Category:** Ansible Project\
**Created:** [April 6, 2017, 4:57pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161 "2017-04-06T16:57:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anthony\_Cheng](https://avatars.discourse-cdn.com/v4/letter/a/c57346/32.png) [@Anthony\_Cheng](https://forum.ansible.com/u/Anthony_Cheng)\
**Post date:** [April 6, 2017, 4:57pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161/1 "2017-04-06T16:57:24Z")

</div>

Is it possible to set variable before hosts in playbook?

Something like this doesn’t work:

`  
var:  
VARHOSTNAME: test

- hosts: “{{ VARHOSTNAME }}”  
gather\_facts: true  
become: yes  
`

I know I can set variable in vars file or pass in environment values at command line but wanted to know if i can just define variable directly at the playbook level.

---

<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:** [April 6, 2017, 5:22pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161/2 "2017-04-06T17:22:26Z")

</div>

You can have vars as part of the play

- hosts: "{{ VARHOSTNAME }}"  
&nbsp;&nbsp;&nbsp;gather\_facts: true  
&nbsp;&nbsp;&nbsp;become: yes  
&nbsp;&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARHOSTNAME: test

---

<div class="post-metadata">

**Author:** ![Anthony\_Cheng](https://avatars.discourse-cdn.com/v4/letter/a/c57346/32.png) [@Anthony\_Cheng](https://forum.ansible.com/u/Anthony_Cheng)\
**Post date:** [April 6, 2017, 5:32pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161/3 "2017-04-06T17:32:04Z")

</div>

Are you sure that it actually works? It didn’t when I tested it (looks like order matters).

---

<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:** [April 6, 2017, 5:38pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161/4 "2017-04-06T17:38:20Z")

</div>

> Are you sure that it actually works? It didn't when I tested it (looks  
> like order matters).

Yes I'm sure, if not I would not have written it.

[https://docs.ansible.com/ansible/playbooks\_variables.html#variables-defined-in-a-playbook](https://docs.ansible.com/ansible/playbooks_variables.html#variables-defined-in-a-playbook)

---

<div class="post-metadata">

**Author:** ![Anthony\_Cheng](https://avatars.discourse-cdn.com/v4/letter/a/c57346/32.png) [@Anthony\_Cheng](https://forum.ansible.com/u/Anthony_Cheng)\
**Post date:** [April 6, 2017, 7:14pm UTC](https://forum.ansible.com/t/set-variable-before-hosts-in-playbook/24161/5 "2017-04-06T19:14:04Z")

</div>

Thanks!

Somehow I missed that vars (and IDE missed it as well…)
