Introduction

Today we’re going to talk about Ansible troubleshooting, specifically about VARIABLE IS NOT DEFINED! Message.

Most of the time the root cause is a misspelled variable or a variable really not defined. This use case is special about the ansible_hostname internal variable.

I’m Luca Berton and welcome to today’s episode of Ansible Pilot.

Playbook

The best way of talking about Ansible troubleshooting is to jump in a live Playbook to show you practically the VARIABLE IS NOT DEFINED! and how to solve it!

error code

``yaml

---

  • name: hostname Playbook

hosts: all

gather_facts: false

tasks:

- name: print hostname

ansible.builtin.debug:

var: ansible_hostname

`

error execution

`bash

ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory troubleshooting/variablenotdefined_error.yml

PLAY [hostname Playbook] **

TASK [print hostname] *

ok: [demo.example.com] => {

"ansible_hostname": "VARIABLE IS NOT DEFINED!"

}

PLAY RECAP **

demo.example.com : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

ansible-pilot $

`

fix code

`yaml

---

  • name: hostname Playbook

hosts: all

gather_facts: true

tasks:

- name: print hostname

ansible.builtin.debug:

var: ansible_hostname

`

fix execution

`bash

ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory troubleshooting/variablenotdefined_fix.yml

PLAY [hostname Playbook] **

TASK [Gathering Facts]

ok: [demo.example.com]

TASK [print hostname] *

ok: [demo.example.com] => {

"ansible_hostname": "Playbook"

}

PLAY RECAP **

demo.example.com : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

ansible-pilot $

``

[code with ❤️ in GitHub](https://github.com/lucab85/ansible-pilot/tree/master/troubleshooting)

Conclusion

Now you know better how to troubleshoot the Ansible VARIABLE IS NOT DEFINED! message.