I want to use python3 for using k8s module (kubernetes.core.k8s_info) on the ansible controller node which RHEL 7.
Python2 is already installed. I have installed python3.
I am trying to use python3 by setting ansible_python_interpreter var but its still showing that its using python version 2 in the command like ansible --version.
ansible_python_interpreter is already set at multiple level and even after using all the options together, its still not picking up python3 and giving same error.
Have set the var ansible_python_interpreter at i) inventory, ii) playbook, iii) /home/sac/ansible.cfg and iv) with -e option as well in ansible-playbook` command.
The Ansible engine side only runs on the python that it was installed in, which in your case is 2.7.5. The ansible_python_interpreter controls what Python is used to run the modules on the remote target. You can see what Python was invoked for that scenario by running Ansible with -vvv. If you want to run the Ansible engine with your Python 3.6, the simplest way is to install Ansible with that python version.
RHEL 7 published RPMs for a package called "ansible" are from before
the split, to "ansibl-core" which actually has ansible, and the
"ansible" package which does not contain ansible, it has a dependency
on "ansible-core" and installs more than 100 additional modules from
the ansible galaxy collection. It really should have been called
"ansible_collections" .
You're going to hurt yourself if you keep trying to use that. In the
short term, you can use "pip3 install --user ansible-core" to get a
much more recent version, ansible-core 2.11. Or bump up to RHEL 8 and
you can get a contemporary ansible-core via RPM and avoid these
issues.
Even after setting ansible_python_interpreter var at different level, i cannot see in the verbose output of playbook command that python3 is getting used on the managed nodes.
I am trying to understand it. So there is some split and ansible and ansible-core is separated now. I can see in the Redhat Downloads (with whatever subscription i have)
the latest package for ansible for RHEL7 is ansible-2.9.27-1.el7ae. No ansible-core i can see for RHEL7. Can see its available for el8, el9.
There is no ansible package for RHEL7 that supports python3?
I have installed python3 on the system but unable to use it for the currently installed ansible (2.9.9).
Because of this (unable to use python3 on controller node) i am getting issue in using kubernetes.core.k8s_info (as its only support python3 and not python2). The error message you can see here - https://pastebin.com/zEx6qTXk
Can you please tell me, what if i want to do this via .rpm way and not used pip for this?
Is using pip install the only way to have python3 support for ansible package on controller node on RHEL7 machine?
I am trying to understand it. So there is some split and ansible and ansible-core is separated now. I can see in the Redhat Downloads (with whatever subscription i have)
the latest package for ansible for RHEL7 is `ansible-2.9.27-1.el7ae`. No `ansible-core` i can see for RHEL7. Can see its available for el8, el9.
There is no ansible package for RHEL7 that supports python3?
I have installed python3 on the system but unable to use it for the currently installed ansible (2.9.9).
Because of this (unable to use python3 on controller node) i am getting issue in using `kubernetes.core.k8s_info` (as its only support python3 and not python2). The error message you can see here - https://pastebin.com/zEx6qTXk
RHEL 7's copy of "ansible" predates the very peculiar split to
"ansible-core", which has most of the old code, and a package called
"ansible" which is dependent on ansible-core, takes up half a Gig of
space, and consists of more than 100 ansible galaxy collection nodes,
and doesn't actually contain ansible.
Jump to RHEL 8 to install ansible-core of a current release: or
install python3 and python3 -pip, and use this:
pip3 install ansible-core --user
i actually publish hooks to build RPMs for recent backports of the
"ansible-core" and "ansible" packages, but I gave on the obsolete RHEL
7 python 3 a while ago.