Please built ansible for EPEL 8
I'd like to, but we need to build a nummber of prereqs first.
Is there a list of missing deps for me to follow up on?
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?
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.
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?
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?
(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.
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.
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
(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> - 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> - 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
Created attachment 1619336 [details] RHEL8 ansible.spec
(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> - 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> - 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.
(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> - 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> - 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.
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...
FEDORA-EPEL-2019-ddb85ce75d has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-ddb85ce75d
FEDORA-EPEL-2019-366f954b52 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-366f954b52
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
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.
(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.
> 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
(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.