Ansible troubleshooting - VARIABLE IS NOT DEFINED! ansible_hostname
Root cause analysis when the variable is not misspelled or not defined using the ansible_hostname internal variable and gather_facts boolean.
Join Luca Berton on Ansible Pilot as we explore troubleshooting for the VARIABLE IS NOT DEFINED! error, focusing on practical solutions.![](/articles/ansible_troubleshooting_variable_undefined.png)
![Access the Complete Video Course and Learn Quick Ansible by 200+ Practical Lessons](/banner-video.jpg)
YouTube Video
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.
demo
The best way of talking about Ansible troubleshooting is to jump in a live demo to show you practically the VARIABLE IS NOT DEFINED! and how to solve it!
error code
---
- name: hostname demo
hosts: all
gather_facts: false
tasks:
- name: print hostname
ansible.builtin.debug:
var: ansible_hostname
error execution
ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory troubleshooting/variablenotdefined_error.yml
PLAY [hostname demo] ******************************************************************************
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
---
- name: hostname demo
hosts: all
gather_facts: true
tasks:
- name: print hostname
ansible.builtin.debug:
var: ansible_hostname
fix execution
ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory troubleshooting/variablenotdefined_fix.yml
PLAY [hostname demo] ******************************************************************************
TASK [Gathering Facts] ****************************************************************************
ok: [demo.example.com]
TASK [print hostname] *****************************************************************************
ok: [demo.example.com] => {
"ansible_hostname": "demo"
}
PLAY RECAP ****************************************************************************************
demo.example.com : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansible-pilot $
Recap
Now you know better how to troubleshoot the Ansible VARIABLE IS NOT DEFINED! message. Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.
Academy
Learn the Ansible automation technology with some real-life examples in my
My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps
Donate
Want to keep this project going? Please donate