Bug 1934425

Summary: The future of ansible in EPEL 7?
Product: [Fedora] Fedora EPEL Reporter: Frank Adaemmer <frank.adaemmer>
Component: ansibleAssignee: Kevin Fenzi <kevin>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: a.badger, kevin, maxim
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-07 01:40:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frank Adaemmer 2021-03-03 08:43:43 UTC
Today you have two options if you want to install ansible from EPEL 7.
Install ansible package or install ansible-python3 package (or both). Both install ansible 2.9 (currently 2.9.17) and either use python 2 or python 3.

Basic ansible operation will work after installation, but a lot of built-in ansible modules and filters dependent on other python modules. Here some example of python modules I usually add.
•	python-netaddr
•	python-requests
•	python2-pyvmomi
•	python2-winrm
•	python-ldap

And here it becomes problematic. Until now I use ansible with python2. Recently python2-pyvmomi does missing, but python36-pyvmomi is available. So I start testing with ansible-python3. 

First thing I noticed was that ansible-python3 does not provide /usr/bin/ansible, /usr/bin/ansible-playbook, etc., but only /usr/bin/ansible-3, /usr/bin/ansible-36, etc..

Then I realize that there is no python36-winrm package or alike. In my case this is a blocker.

Now here is my question. What will the future of ansible in EPEL 7 look like?

Comment 1 Kevin Fenzi 2021-03-07 01:40:28 UTC
(In reply to Frank Adaemmer from comment #0)
> Today you have two options if you want to install ansible from EPEL 7.
> Install ansible package or install ansible-python3 package (or both). Both
> install ansible 2.9 (currently 2.9.17) and either use python 2 or python 3.

Yep. Also give that newer ansible versions are going to move to require python3.8 too, I was not planning on upgrading epel7 past ansible-2.9 (classic).

> Basic ansible operation will work after installation, but a lot of built-in
> ansible modules and filters dependent on other python modules. Here some
> example of python modules I usually add.
> •	python-netaddr
> •	python-requests
> •	python2-pyvmomi
> •	python2-winrm
> •	python-ldap

Right. It's impossible to require these for a number of reasons (the package only controls requires for the control node, we have no idea what is required for every module to work, adding all those requirements would make ansible so heavyweight no one would want to install it, etc). 
 
> And here it becomes problematic. Until now I use ansible with python2.
> Recently python2-pyvmomi does missing, but python36-pyvmomi is available. So
> I start testing with ansible-python3. 

Yes, the python2 versions in epel probibly will decrease over time as fedora no longer supports python2, so maintainers move to drop it in epel also. 
 
> First thing I noticed was that ansible-python3 does not provide
> /usr/bin/ansible, /usr/bin/ansible-playbook, etc., but only
> /usr/bin/ansible-3, /usr/bin/ansible-36, etc..

Correct. This is to allow ansible and python3-ansible to be parallel installable. 
 
> Then I realize that there is no python36-winrm package or alike. In my case
> this is a blocker.

You can ask the python-winrm maintainer to add a python3 subpackage? 
Take a look at https://bugzilla.redhat.com/show_bug.cgi?id=1471054
 
> Now here is my question. What will the future of ansible in EPEL 7 look like?

Not much change as far as my current plans. :) I'd advise switching to the python3 version and seeing if you can get the requirements you need made available also in epel?

I'm happy to help where I can...