but when i try to run a firewalld task in ansible i get
"msg": "Python Module not found: firewalld and its python module are
required for this module, version 0.2.11 or newer required (0.3.9 or
newer for offline operations)"
this is because there is no python 3.9 version of the firewalld
modules only python 3.6. but ansible is installed with 3.9 and as i
understood requires 3.9+.
however, when i set the python interpreter to 3.6 in ansible.cfg the
firewalld tasks run fine.
so i guess i'm confused. what is the repercussion of setting
python3.6 as the ansible interpreter vs python3.9, if there's none
then what's forcing ansible to mandate 3.9 instead of just using the
redhat default of 3.6? is there a reason i shouldn't just set py36 as
the default interpreter on all my rhel8 hosts?
before i attempt to navigate redhat support, does anyone know off hand
how/if redhat plans to rev the py3.6 modules to py3.9 in rhel8 for
ansible? i see rhel9 already made the leap, but i can't goto rhel9
yes, i am working on the localhost and have connection: local in the
playbook. the error message doesn't match what i see, but the symptom
is close
in my case ansible for the most part seems to be working okay, its
just when ansible calls a system py module (firewalld in this case),
it's missing from the /usr/lib/python3.9. it's almost like redhat
missed a dependancy in the ansible chain
yes, i am working on the localhost and have connection: local in the
playbook. the error message doesn’t match what i see, but the symptom
is close
I’m pretty sure it is the same issue - the python39 module used by ansible is missing most of the usual system python 3.6 libraries, so you have to force ansible to use the system python 3.6 instead to run modules, using the instructions in the KB article.
in my case ansible for the most part seems to be working okay, its
just when ansible calls a system py module (firewalld in this case),
it’s missing from the /usr/lib/python3.9. it’s almost like redhat
missed a dependancy in the ansible chain
No, it is deliberate - ansible runs with the python39 module - that is only supported to run ansible itself, not the myriad of modules and filters that might be used, so for localhost you need to use system python 3.6 libraries for firewall, storage, et. al. you must follow the instructions in https://access.redhat.com/solutions/6726561