Problem scenario
You try to run a playbook. But you get a message like this: 'fatal: … "AnsibleUndefinedVariable" 'hadoop_env' is undefined'. What should you do?
Root cause: a variable you defined (e.g., in a playbook or role) is not getting assigned when you run the playbook.
Possible solution #1
Find the vars directory or create it. Ensure that there is a .yaml file with permissions that will allow the playbook to retrieve them and read them.
Possible solution #2
Find where your .yaml file is for vars on the server. Change your playbook to have these two lines (with "vars_file" having the same indentation as "vars:"):
vars_file:
- /path/to/var/file.yaml
Where /path/to/var/ is the location where the YAML file named "file.yaml". This "file.yaml" file is the one defines the hadoop_env variable file.
Possible Solution #3 (not recommended)
This is just a workaround. In the playbook (or whichever file is setting your variables), go to the "vars:" section. Designate a variable like this: hadoop_env: "/"
Run the playbook again. Using "/tmp/" is possible (instead of "/"). But this may have negative security implications. As a workaround we prefer 'hadoop_env: "/"'