Bug 1744975 - Please build ansible for EPEL 8
Summary: Please build ansible for EPEL 8
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: ansible
Version: epel8
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1755035
Blocks: 1757320
TreeView+ depends on / blocked
 
Reported: 2019-08-23 12:02 UTC by williredhat
Modified: 2020-01-20 20:55 UTC (History)
17 users (show)

Fixed In Version: ansible-2.8.5-2.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-10-25 17:28:59 UTC
Type: Bug


Attachments (Terms of Use)
RHEL8 ansible.spec (22.18 KB, text/plain)
2019-09-26 04:14 UTC, Orion Poplawski
no flags Details

Description williredhat 2019-08-23 12:02:34 UTC
Please built ansible for EPEL 8

Comment 1 Kevin Fenzi 2019-08-23 15:47:29 UTC
I'd like to, but we need to build a nummber of prereqs first.

Comment 2 Pat Riehecky 2019-09-24 15:03:31 UTC
Is there a list of missing deps for me to follow up on?

Comment 3 Orion Poplawski 2019-09-24 18:39:54 UTC
On my rhel8 box, ansible from ansible-2.8-for-rhel-8-x86_64-rpms only pulls in sshpass from that repo in addition to ansible.  Also, since it is easily installable on RHEL8 from that repo, does it make sense for ansible to be carried via CentOS instead of EPEL?  Any coordination going on with them?

Comment 4 Pat Riehecky 2019-09-24 18:53:32 UTC
Just filling in background:

The CentOS Config Management SIG lets you pick out which ansible version (similar to the RHEL repos).

I think https://releases.ansible.com/ansible/rpm/release/ might be of interest.  Personally I'd rather not have to select a specific version of Ansible to get the basic features.

With Ansible within EPEL, it would be in a clear place for folks on any rebuild.  Complex server software might be able to require ansible for its internal management.

Comment 5 Kevin Fenzi 2019-09-24 18:59:33 UTC
So, a scratch build ( https://koji.fedoraproject.org/koji/taskinfo?taskID=37845490 ) gives: 

```
DEBUG util.py:593:  No matching package to install: 'python3-boto3'
DEBUG util.py:593:  No matching package to install: 'python3-botocore'
DEBUG util.py:593:  No matching package to install: 'python3-coverage'
DEBUG util.py:593:  No matching package to install: 'python3-crypto'
DEBUG util.py:593:  No matching package to install: 'python3-gitlab'
DEBUG util.py:593:  No matching package to install: 'python3-httmock'
DEBUG util.py:593:  No matching package to install: 'python3-paramiko'
DEBUG util.py:593:  No matching package to install: 'python3-passlib'
DEBUG util.py:593:  No matching package to install: 'python3-pbkdf2'
DEBUG util.py:593:  No matching package to install: 'python3-sphinx-notfound-page'
DEBUG util.py:593:  No matching package to install: 'python3-winrm'
```

Some of those are only needed for tests, so we could drop them, but others I think are really needed. 

So, I think rhel builds ansible in a completely seperate channel, in which it might have it's own build requires (which are then not published). 

I think it's valuable to provide this in epel8, but willing to be convinced otherwise. Is the rhel8 channel available to all users? Where did centos8 provide it? or did they?

Comment 6 Pat Riehecky 2019-09-24 19:05:34 UTC
The SIG for CentOS 8 isn't ready yet.  No clear ETA on that.

RHEL is providing channels per version which will require disabling repos and enabling other repos when ansible 2.8 goes end of life.

I'd propose cloning over the packages from ansible releases into EPEL8 (fewer requirements) and use EPEL8 playground for new releases.  Perhaps rebase to a newer ansible from EPEL8 playground with various point releases?

Comment 7 Kevin Fenzi 2019-09-24 21:38:10 UTC
(In reply to Pat Riehecky from comment #6)

> I'd propose cloning over the packages from ansible releases into EPEL8
> (fewer requirements) and use EPEL8 playground for new releases.  Perhaps

As the person that maintains the epel7 and all fedora versions, I'd really rather they be similar rather than widely divergent. 
I'll try and look this weekend at what can be dropped out/needs epel8 forks.

> rebase to a newer ansible from EPEL8 playground with various point releases?

Well, the point releases of late have been pretty stable IMHO. I'd rather build them in epel8 and use epel8-playground for rc's. (ie, there's a 2.9 rc out now which I haven't put anywhere)

Of course that brings up a bigger question on perhaps we should build playground against centos stream, but that can be discussed on the list.

Comment 8 James Cassell 2019-09-26 01:56:56 UTC
Hopefully a RH person can confirm whether ansible is available to all RHEL customers.  It's included at least with what used to be sold as RHEL Server.

I'd like to point out that there is a minor-version agnostic repo available called ansible-2-for-rhel-8-x86_64-rpms.  This always has the latest stable minor release of ansible 2.X.  If all RHEL customers have access to this repo, it would make sense to carry it in CentOS.  Otherwise, carrying it in EPEL would make sense.

Comment 9 Orion Poplawski 2019-09-26 02:21:25 UTC
I don't know if this has any bearing or not - but there does not appear to be a c8 branch for ansible here: https://git.centos.org/rpms/ansible/branches

Comment 10 Orion Poplawski 2019-09-26 04:14:05 UTC
(In reply to Kevin Fenzi from comment #5)
> DEBUG util.py:593:  No matching package to install: 'python3-boto3'
> DEBUG util.py:593:  No matching package to install: 'python3-botocore'

The RHEL8 ansible package uses these for tests - but yeah, rhel8 isn't shipping them.

> DEBUG util.py:593:  No matching package to install: 'python3-coverage'

This is provided by platform-python, so use BuildRequires:  %{py3_dist coverage}

> DEBUG util.py:593:  No matching package to install: 'python3-crypto'

The RHEL8 ansible package uses python3-cryptography instead

* Thu Aug 10 2017 Ryan Brown <ryansb@redhat.com> - 2.4.0.0-0.1.rc0
...
- Switch to python-cryptography from PyCrypto
...

> DEBUG util.py:593:  No matching package to install: 'python3-gitlab'
> DEBUG util.py:593:  No matching package to install: 'python3-httmock'
> DEBUG util.py:593:  No matching package to install: 'python3-passlib'
> DEBUG util.py:593:  No matching package to install: 'python3-pbkdf2'
> DEBUG util.py:593:  No matching package to install:
> 'python3-sphinx-notfound-page'

The RHEL8 ansible package does not use these

* Wed Nov 14 2018 Adam Miller <admiller@redhat.com> - 2.7.2-2
- Remove python-passlib dep, no longer needed for Engine

> DEBUG util.py:593:  No matching package to install: 'python3-paramiko'
> DEBUG util.py:593:  No matching package to install: 'python3-winrm'

Likewise, but I suspect we will want to at least recommend them

Comment 11 Orion Poplawski 2019-09-26 04:14:54 UTC
Created attachment 1619336 [details]
RHEL8 ansible.spec

Comment 12 Kevin Fenzi 2019-09-27 15:42:41 UTC
(In reply to Orion Poplawski from comment #10)
> (In reply to Kevin Fenzi from comment #5)
> > DEBUG util.py:593:  No matching package to install: 'python3-boto3'
> > DEBUG util.py:593:  No matching package to install: 'python3-botocore'
> 
> The RHEL8 ansible package uses these for tests - but yeah, rhel8 isn't
> shipping them.
> 
> > DEBUG util.py:593:  No matching package to install: 'python3-coverage'
> 
> This is provided by platform-python, so use BuildRequires:  %{py3_dist
> coverage}
> 
> > DEBUG util.py:593:  No matching package to install: 'python3-crypto'
> 
> The RHEL8 ansible package uses python3-cryptography instead

yes, I am well aware, but the tests still need python3-crypto (unless it got fixed in the last point release).
 
> * Thu Aug 10 2017 Ryan Brown <ryansb@redhat.com> - 2.4.0.0-0.1.rc0
> ...
> - Switch to python-cryptography from PyCrypto
> ...
> 
> > DEBUG util.py:593:  No matching package to install: 'python3-gitlab'
> > DEBUG util.py:593:  No matching package to install: 'python3-httmock'
> > DEBUG util.py:593:  No matching package to install: 'python3-passlib'
> > DEBUG util.py:593:  No matching package to install: 'python3-pbkdf2'

All needed for tests. 

> > DEBUG util.py:593:  No matching package to install:
> > 'python3-sphinx-notfound-page'
> 
> The RHEL8 ansible package does not use these

Needed for docs.
> 
> * Wed Nov 14 2018 Adam Miller <admiller@redhat.com> - 2.7.2-2
> - Remove python-passlib dep, no longer needed for Engine
> 
> > DEBUG util.py:593:  No matching package to install: 'python3-paramiko'
> > DEBUG util.py:593:  No matching package to install: 'python3-winrm'
> 
> Likewise, but I suspect we will want to at least recommend them

These are needed for those transports.. but sure we could go to reccomends. 

I'd prefer to build the docs and run the tests if we can, but I'll try and take a closer look this weekend. Since everyone is chomping at the bit here perhaps we can push out a no tests/no docs version and add those in over time.

Comment 13 Toshio Kuratomi 2019-10-04 21:18:49 UTC
(In reply to Kevin Fenzi from comment #12)
> (In reply to Orion Poplawski from comment #10)
> > (In reply to Kevin Fenzi from comment #5)
> > > DEBUG util.py:593:  No matching package to install: 'python3-boto3'
> > > DEBUG util.py:593:  No matching package to install: 'python3-botocore'
> > 
> > The RHEL8 ansible package uses these for tests - but yeah, rhel8 isn't
> > shipping them.
> > 
> > > DEBUG util.py:593:  No matching package to install: 'python3-coverage'
> > 
> > This is provided by platform-python, so use BuildRequires:  %{py3_dist
> > coverage}
> > 
> > > DEBUG util.py:593:  No matching package to install: 'python3-crypto'
> > 
> > The RHEL8 ansible package uses python3-cryptography instead
> 
> yes, I am well aware, but the tests still need python3-crypto (unless it got
> fixed in the last point release).
>  
> > * Thu Aug 10 2017 Ryan Brown <ryansb@redhat.com> - 2.4.0.0-0.1.rc0
> > ...
> > - Switch to python-cryptography from PyCrypto
> > ...
> > 
> > > DEBUG util.py:593:  No matching package to install: 'python3-gitlab'
> > > DEBUG util.py:593:  No matching package to install: 'python3-httmock'
> > > DEBUG util.py:593:  No matching package to install: 'python3-passlib'
> > > DEBUG util.py:593:  No matching package to install: 'python3-pbkdf2'
> 
> All needed for tests. 
> 
> > > DEBUG util.py:593:  No matching package to install:
> > > 'python3-sphinx-notfound-page'
> > 
> > The RHEL8 ansible package does not use these
> 
> Needed for docs.

Yeah, there was a decision made not to build the docs for the ansible engine package anymore and that's why this is not a requirement there.  IIRC, this dep tree isn't very deep so you should be able to build docs on Fedora/EPEL with only a few new packages (like this one).  2.9.0 changes the build a little bit so you'll also need python3-straight.plugin to build docs (but I chose that since it was a package used in Fedora Infrastructure so EPEL probably has it already).

> > 
> > * Wed Nov 14 2018 Adam Miller <admiller@redhat.com> - 2.7.2-2
> > - Remove python-passlib dep, no longer needed for Engine
> > 
python-passlib is an optional dep.  There's access to more hashes if it's present but we can just use crypt from the python stdlib if it's not present.

> > > DEBUG util.py:593:  No matching package to install: 'python3-paramiko'
> > > DEBUG util.py:593:  No matching package to install: 'python3-winrm'
> > 
> > Likewise, but I suspect we will want to at least recommend them
> 
> These are needed for those transports.. but sure we could go to reccomends. 
>
<nod>  paramiko and winrm are widely used for their respective connection plugins.
(paramiko both by the paramiko_ssh connection plugin and by /usr/bin/ansible-connection which manages a persistent ssh
connection to networking hardware since the networking hardware sometimes lacks a new enough sshd to controlpersist the connection.)


> I'd prefer to build the docs and run the tests if we can, but I'll try and
> take a closer look this weekend. Since everyone is chomping at the bit here
> perhaps we can push out a no tests/no docs version and add those in over
> time.

Just a data point: I had unittests running in the RHEL8 ansible engine package for a brief period of time in the RHEL8, ansible-2.9 packages so I think all the optional packages (like boto, httmock, gitlab, pycrypto, etc) have finally been marked optional... the unittests will simply skip if those packages aren't present.  However, 2.9 recently started using a pytest feature that isn't present in the RHEL package of pytest (--strict-markers).  So I've had to disable the unittests there again.  I've mentioned to mattclay, the person who works on ansible's testing infrastructure, that making that an optional requirement could be nice but in the runup to 2.9.0, he hasn't had time to work on that.  I don't know if it will be able to be prioritized after 2.9.0 or not.

I believe the optional marking got backported to 2.8.x as well (I'm running the unittests on RHEL8 for the ansible engine 2.8.5-2 package) so in the brief period between now and everyone wanting 2.9.0, you can probably get ansible-2.8.5 built with unittests enabled.  You'll have to decide what you want for the future, after that, though.

Comment 14 Kevin Fenzi 2019-10-10 14:48:07 UTC
So, I worked over the spec a lot and removed a bunch of cruft. I'm hoping to use the same spec for fedora* and epel8, and let epel6/7 diverge/be seperate. (Possibly will rework the epel7 one soon as well).

Right now I have epel8 doing tests and docs, but of course with 2.9.0 we will have to see. 

Testing most welcome. Will attach the update once it's done building...

Comment 15 Fedora Update System 2019-10-10 16:12:01 UTC
FEDORA-EPEL-2019-ddb85ce75d has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-ddb85ce75d

Comment 16 Fedora Update System 2019-10-11 00:18:24 UTC
FEDORA-EPEL-2019-366f954b52 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-366f954b52

Comment 17 Fedora Update System 2019-10-11 23:27:42 UTC
ansible-2.8.5-2.el8 has been pushed to the Fedora EPEL 8 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-366f954b52

Comment 18 Fedora Update System 2019-10-25 17:28:59 UTC
ansible-2.8.5-2.el8 has been pushed to the Fedora EPEL 8 stable repository. If problems still persist, please make note of it in this bug report.

Comment 19 Louis Sautier 2020-01-07 15:39:22 UTC
(In reply to Kevin Fenzi from comment #14)
> So, I worked over the spec a lot and removed a bunch of cruft. I'm hoping to
> use the same spec for fedora* and epel8, and let epel6/7 diverge/be
> seperate. (Possibly will rework the epel7 one soon as well).
> 
> Right now I have epel8 doing tests and docs, but of course with 2.9.0 we
> will have to see. 
> 
> Testing most welcome. Will attach the update once it's done building...

Hi Kevin, do you plan on adding 2.9 to el8 too? AWX has switched to EL8 for their latest release so quite a lot of users depend on this package now.

Comment 20 Michael Rochefort 2020-01-20 05:06:29 UTC
> Hopefully a RH person can confirm whether ansible is available to all RHEL customers.  It's included at least with what used to be sold as RHEL Server.

I am not such a person, but from reading the following pages it seems to be the case that Ansible Engine is available to anyone with a RHEL subscription. It seems to be under limited support, though. I can't verify for Workstation subscriptions or the other premium ones, but the free developer subscription does have access to these repositories. I came across this today when searching for Ansible and seeing it in EPEL depsite having the official 2, 2.8, and 2.9 repos available. I also have the 2, 2.4-2.9 repos available to me on RHEL 7.

https://access.redhat.com/articles/3050101
https://access.redhat.com/articles/3359651
https://access.redhat.com/articles/3174981

Comment 21 Kevin Fenzi 2020-01-20 20:55:23 UTC
(In reply to Louis Sautier from comment #19)
> 
> Hi Kevin, do you plan on adding 2.9 to el8 too? AWX has switched to EL8 for
> their latest release so quite a lot of users depend on this package now.

Yes, it will be going out today. I had to wait for some test dependencies to land first.


Note You need to log in before you can comment on or make changes to this bug.