Table of Contents

,

ansible troubleshooting

undefined variable

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.

AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'

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.

.local/bin/ansible: No such file or directory

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

unsupported locale setting

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

an unexpected keyword argument 'cert_file'

[WARNING]: Skipping Galaxy server https://old-galaxy.ansible.com/. Got an unexpected error when getting available versions of
collection community.docker: Unknown error when attempting to call Galaxy at 'https://old-galaxy.ansible.com/api':
HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'. HTTPSConnection.__init__() got an unexpected keyword
argument 'cert_file'
ERROR! Unknown error when attempting to call Galaxy at 'https://old-galaxy.ansible.com/api': HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'. HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'

Try a different (newer) ansible version.

"msg": "MODULE FAILURE: No start of json char found\nSee stdout/stderr for the exact error"

This is also possibly a mismatch with ansible versions and older python on target hosts. Try a different, older ansible version if running against older OS-es.

couldn't resolve module/action 'community.libvirt.virt_install'

You have the module installed but it still returns a similar error might be because of an older version of plugin. Run this to update it:

ansible-galaxy collection install community.libvirt -U

Now 2 versions are shown, ansible should use the newest one.

ansible-galaxy collection list |grep virt
community.libvirt                        2.0.0  
community.libvirt                        1.2.0  

Check also if the ansible version itself is compatible with plugin, on plugin document page.

See also

References