atal: [10.21.21.11]: FAILED! => msg: |- The task includes an option with an undefined variable. The error was: 'ansible.vars.hostvars.HostVarsVars object' has no attribute bla bla
Check the names in group_vars! They need to match the name of the group in the inventory file.
Check versions of ansible and dependencies. This was caused by the upgraded cryptography package (and using the old ansible version - 2.9.27) which was being source from /usr/local/lib/python3.10/dist-packages/
. This fixed it:
sudo pip uninstall cryptography
to uninstall from system directory and then run this (notice no sudo) to install it in user's directory /home/user/.local/lib/python3.10/site-packages
pip install cryptography==2.6.1
Or just use a newer version of ansible which can use newer version of cryptography package.
Happened when pip installing 9.3.0 version over 2.9.27.
Uninstall old version first
pip uninstall 2.9.27
Make sure no ansible dirs are leftover:
~$ ls /home/antisa/.local/lib/python3.10/site-packages/ansible* ls: cannot access '/home/antisa/.local/lib/python3.10/site-packages/ansible*': No such file or directory
Now install via pip
pip install ansible
ERROR: Ansible could not initialize the preferred locale: unsupported locale setting
This might happen when you ssh into a server which doesn't have your locale generated (the one you are using on your local machine) and you are forwarding the locale over ssh (see SendEnv
and AcceptEnv
in ssh_config and sshd_config on your machine and server respectively).
Fix is to simply generate the locale:
vi /etc/locale.gen
uncomment your locale e.g.
hr_HR.UTF-8
Then run
locale-gen