Ansible 2.13 yum module - requires minimum version of target python of 2.7 or 3.5. But I already have that

I have an Ansible (2.13) machine targeting a remote centOS 6 with Python 3.6.

Remote machine has python3.6 installed and variables are set like this:

$ ansible-inventory --host centos-6-vm

{

“ansible_private_key_file”: “~/.ssh/id_rsa”,

“ansible_python_interpreter”: “/usr/bin/python3.6”,

“ansible_user”: “daniel”

}

Ansible can ping, setup and gather facts from target successfully.

But when trying to run the yum module, I get an error as if my server doesn’t have Python 3.6

This is my playbook

CentOS 6 is end-of-life. Even the primary mirror sites over at
vault.centos.org don't work anymore.

That said, if you're staying on CentOS 6, do not use the raw "python"
or "pip" command to install any of it. Use "python3" or "pip3".

    pip3 install --user ansible-core

That will only get you the maximum ansible-core compatible with your
release of python 3.

The yum module within ansible requires the python yum bindings to work, and those are only available using Python 2.6. ansible-core 2.13 no longer supports Python 2.6, so there is no combination where you can use the yum module with ansible-core 2.13 on RHEL6.

The last version of ansible-core to support Python 2.6 for target execution was ansible-core 2.12.

I appreciate the time and the answers.

My customer has an up-to-date Ansible but some server OS are still old.

So I’ll consider using the command module for this special case (yum rhel 6).

Thank you again.

Br,

Daniel

Note that ansible-core 2.12 is the default available version on RHEL
8, because it's compatible with the built-in python 3.6, and is
available from Red Hat repos as an RPM. So it's a supportable release
on your ansible server, even if your server is on a commercially
supported RHEL.