Ansible 5.3.0 has been released

70 views
Skip to first unread message

David Moreau Simard

unread,
Feb 1, 2022, 12:32:04 PM2/1/22
to ansible...@googlegroups.com, ansibl...@googlegroups.com, ansible-...@googlegroups.com
Hi all,

We're happy to announce that the Ansible 5.3.0 package has been released !

Ansible 5.3.0 includes the newly released ansible-core 2.12.2 as well as
a curated set of Ansible collections to provide a vast number of
modules and plugins.

This is a major version update from Ansible 4.x which included
ansible-core 2.11 and there may be backwards incompatibilities in the
core playbook language.

Please see the porting guide (linked at the bottom) for details.

How to get it
-------------

Due to a limitation in pip, if you are upgrading from Ansible 3 (or
earlier), you need to uninstall ansible and ansible-base before
installing Ansible 5:

```
$ pip uninstall ansible ansible-base
$ pip install ansible==5.3.0 --user
```

The tar.gz of the release can be found here:

Ansible 5.3.0: https://pypi.python.org/packages/source/a/ansible/ansible-5.3.0.tar.gz
SHA256: 50020dab43f6c59debdeb57f45c90ec6db78d4fa574edc6d75bc52e05cbd3639

What's new in Ansible 5.3.0
---------------------------

* The changelog for ansible-core 2.12.2 installed by this release of
ansible is available here:
https://github.com/ansible/ansible/blob/stable-2.12/changelogs/CHANGELOG-v2.12.rst

* Collections which have opted into being a part of the Ansible-5
unified changelog will have an entry on this page:
https://github.com/ansible-community/ansible-build-data/blob/main/5/CHANGELOG-v5.rst

* For collections which have not opted into the unified changelog, you
may find more information on https://galaxy.ansible.com or their
source repository. For example, the community.crypto collection would
be found at https://galaxy.ansible.com/community/crypto and you can
find a link to the source repository under the "Repo" button at the
top right.

What's the schedule for new Ansible releases after 5.3.0 ?
---------------------------------------------------------

* Maintenance releases of Ansible 5.x will occur approximately every
three weeks (Ansible 5.4.0, Ansible 5.5.0, etc) until the release of
Ansible 6.0.0. They will contain bugfixes and new features but no
backwards incompatibilities.

* Except for ansible-2.9.x, older versions of ansible are no longer
seeing maintenance releases. If there is a desire for maintenance
releases of older versions, drop by a Community Working Group Meeting
to discuss how you can help:
https://github.com/ansible/community/tree/main/meetings#wednesdays

Porting Help
-------------

A unified porting guide for collections which have opted-in is available here:
https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_5.html

Getting collection updates from Ansible 5 with ansible-core 2.11.x
-----------------------------------------------------------------

Ansible 5 includes ansible-core 2.12.x which has raised the minimum
python requirement to python>=3.8 and users have expressed an interest
in getting collection updates as they ship in Ansible 5 while keeping
ansible-core 2.11.x which still supports python>=2.7.
An ansible-galaxy requirements file based on the collections from
Ansible 5 has been made available for this use case:
https://github.com/ansible-community/ansible-build-data/blob/main/5/galaxy-requirements.yaml

Once the requirements file has been downloaded, the collections can be
installed by running "ansible-galaxy collection install -r
galaxy-requirements.yaml".

On behalf of the Ansible community, thank you and happy automating !

Nico Kadel-Garcia

unread,
Feb 3, 2022, 7:31:45 PM2/3/22
to ansible...@googlegroups.com
On Tue, Feb 1, 2022 at 12:31 PM David Moreau Simard <dmsi...@redhat.com> wrote:
>
> Hi all,
>
> We're happy to announce that the Ansible 5.3.0 package has been released !
>
> Ansible 5.3.0 includes the newly released ansible-core 2.12.2 as well as
> a curated set of Ansible collections to provide a vast number of
> modules and plugins.

I hate to sound like a broken record here, but could we please stop
claiming that ansible-core is included in ansible? It is a listed
requirement in the requirements.txt of the ansible package, but that
is really not the same thing as actually including any of the same
code or built in same compilation step. ansible-core can be installed
quite distinctly, for example by people who want to work around the
python 3.8 requirement for a RHEL 7 or RHEL 8 system and do this:

pip3 install --user ansible-core
# Installs ansible-core 2.11.8, for which EPEL has not
published an RPM yet, despite my publishing .spec files for it.
pip3 install --user ansible --nodeps
# Installs latest ansible, which works well with ansible-core
2.11 in smoke testing

I've updated my spec files for this for RHEL users, over at"
https://github.com/nkadel/ansiblerepo/

It has some other tweaks, such as gracefully handling the hundreds of
license and README files, and forcing "#!/usr/bin/python3" instead of
"#!/usr/bin/python" for consistency and successful RPM compilation.

Nico Kadel-Garcia <nka...@gmail.com>












Nico Kadel-Garcia

Felix Fontein

unread,
Feb 6, 2022, 7:41:21 AM2/6/22
to ansible...@googlegroups.com
Hi Nico,

> > Ansible 5.3.0 includes the newly released ansible-core 2.12.2 as
> > well as a curated set of Ansible collections to provide a vast
> > number of modules and plugins.
>
> I hate to sound like a broken record here, but could we please stop
> claiming that ansible-core is included in ansible?

no, because that is how we see the Ansible (PyPi) package. Ansible is
the "batteries included" package containing (!) both ansible-core and a
set of community collections. And it is what the docsite
(https://docs.ansible.com/ansible/5/) is describing: it describes both
ansible-core 2.12, the builtin collection of this version ansible-core
(see ansible.builtin in
https://docs.ansible.com/ansible/5/collections/), and a set of
collections included (see the other collections in
https://docs.ansible.com/ansible/5/collections/).

While technically you are right, the contents of the Ansible PyPi
package are a Python module that depends on the ansible-core Python
module, this is not what users expect if they install it, and not what
we document on our docsite. It is - from our point of view - merely an
implementation detail of how we realize what we are documenting and
want to deliver to our users.

> It is a listed requirement in the requirements.txt of the ansible
> package,

(Technical fine print: it is not. There is no requirements.txt file.
The dependencies are specified in setup.py. The might move to setup.cfg
in the future.)

> but that is really not the same thing as actually including
> any of the same code or built in same compilation step. ansible-core
> can be installed quite distinctly, for example by people who want to
> work around the python 3.8 requirement for a RHEL 7 or RHEL 8 system
> and do this:
>
> pip3 install --user ansible-core
> # Installs ansible-core 2.11.8, for which EPEL has not
> published an RPM yet, despite my publishing .spec files for it.
> pip3 install --user ansible --nodeps
> # Installs latest ansible, which works well with ansible-core
> 2.11 in smoke testing

While you can install the Python module ansible-core 2.11.x with the
Python module ansible 5.x.y, the result will **not** be Ansible 5 (as
documented on https://docs.ansible.com/ansible/5/ or currently also
https://docs.ansible.com/ansible/latest/).

Cheers,
Felix


Nico Kadel-Garcia

unread,
Feb 6, 2022, 11:05:54 AM2/6/22
to ansible...@googlegroups.com
On Sun, Feb 6, 2022 at 7:41 AM 'Felix Fontein' via Ansible Project
<ansible...@googlegroups.com> wrote:

> While technically you are right, the contents of the Ansible PyPi
> package are a Python module that depends on the ansible-core Python
> module, this is not what users expect if they install it, and not what
> we document on our docsite. It is - from our point of view - merely an
> implementation detail of how we realize what we are documenting and
> want to deliver to our users.

If it's merely an implementation detail, why insist on stating it
incorrectly? Why not be more technically correct and use the verb
"requires" rather than "includes"?

Using "requires" would help reduce the likelihood of people installing
the quite bulky "ansible" package when all they really need is
"ansible-core" and perhaps a few "ansible galaxy" statements. That
would reduce burdens on pypi.org, and shrink deployed OS image sizes
by roughly 500 MByte, a bit of deployment economy that would be aided
by more clear language in the documentation.

Right now, I'm hoping to clarify some release language. Documentation
language could be next, but if it can be clarified in both, *great*.

>> It is a listed requirement in the requirements.txt of the ansible
>> package,

> (Technical fine print: it is not. There is no requirements.txt file.
> The dependencies are specified in setup.py. They might move to setup.cfg
> in the future.)

Good point, thank you for the correction.

I've other thoughts about the way that tarball is assembled, which is
a very separate line of discussion.

> While you can install the Python module ansible-core 2.11.x with the
> Python module ansible 5.x.y, the result will **not** be Ansible 5 (as
> documented on https://docs.ansible.com/ansible/5/ or currently also
> https://docs.ansible.com/ansible/latest/).

This documentation... well, it has other issues. For example, it
mentions that to install "ansible" on RHEL based operating systems,
you should use EPEL to get current releases. That doesn't work, the
EPEL release is ansible-2.9.27 right now, and that release lacks the
"ansible" and "ansible-core" split architecture.
Reply all
Reply to author
Forward
0 new messages