AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Ansible-Core 2.20.4 Release — Latest Stable Update

By Luca Berton · Published 2024-01-01 · Category: installation

Ansible-core 2.20.4 is the latest stable release, included as the base for Ansible community package 13.5.0. Learn how to upgrade and what's new.

Ansible-Core 2.20.4 Release

Ansible-core 2.20.4 is the latest stable release of the current branch. It serves as the base engine for the Ansible community package 13.5.0.

See also: Ansible-Core 2.16.18 Release — Security and Bug Fixes

How to Upgrade

pip install ansible-core==2.20.4 --upgrade

Or install as part of the Ansible community package:

python3 -m pip install ansible==13.5.0 --user

Current Branch Status

| Branch | Latest | Status | |--------|--------|--------| | 2.16 | 2.16.18 | Maintenance (EOL soon) | | 2.18 | 2.18.15 | Maintenance | | 2.19 | 2.19.8 | Supported | | 2.20 | 2.20.4 | Latest / Current |

See also: Ansible-Core 2.18.15 Release — Maintenance Update

Resources

Ansible-Core Release NotesAnsible 13.5.0 ReleaseAnsible Forum

How to Verify the Install

After upgrading, confirm the version is active and the binary path is what you expect:

ansible --version
ansible-core --version 2>/dev/null || true
which ansible
python3 -c "import ansible; print(ansible.__version__)"

Expected output for ansible-core 2.20.4:

ansible [core 2.20.4]
  config file = None
  configured module search path = [...]
  ansible python module location = .../site-packages/ansible
  python version = 3.x.y (...)
  jinja version = 3.x.y

If ansible --version still reports the old release, the upgrade likely landed in a different Python environment. Check pip show ansible-core and verify your shell PATH resolves the intended interpreter. Inside a virtualenv, re-activate the env so the new ansible shim is picked up.

See also: Ansible-Core 2.19.8 Release — Bug Fixes for Data Tagging

Compatibility & Support Matrix

| Component | Requirement | |-----------|-------------| | Control node | Python 3.11 – 3.13 (recommended) | | Managed nodes | Python 3.7+ (control / Linux), PowerShell 5.1+ (Windows) | | OpenSSH client | 7.0+ | | Sudo | 1.8.7+ (older releases may break privilege escalation) | | Container images | quay.io/ansible/ansible-core base image stable-2.20 |

For ansible-core 2.20, the upstream support window typically extends ~12–18 months after the initial .0 release. Production deployments should pin to the 2.20 minor branch in requirements.txt and let security updates flow via patch releases like 2.20.4.

Should You Upgrade?

Patch releases (X.Y.Z) like 2.20.4 are recommended for everyone on the 2.20 branch — they ship security fixes and zero-impact bug fixes with no breaking behavior changes. • Minor releases (X.Y) introduce new features and may deprecate APIs; review the porting guide before bumping the second digit. • Major releases (X) can include breaking removals; pin a working version in CI before evaluating.

For locked enterprise deployments, validate first against your custom collections in a staging Execution Environment (ansible-builder build --tag stage:2.20.4) before rolling out.

Frequently Asked Questions

Is ansible-core 2.20.4 a breaking release?

No. Patch releases on a maintenance branch (2.20.x) only contain bug fixes and security patches. Upgrading from 2.20.3 to 2.20.4 should be drop-in for all existing playbooks.

How do I install a specific ansible-core version with pip?

pip install ansible-core==2.20.4 --upgrade

To install inside a clean virtualenv:

python3 -m venv ~/ansible-2.20.4
source ~/ansible-2.20.4/bin/activate
pip install ansible-core==2.20.4

What's the difference between ansible-core and ansible (the community package)?

ansible-core is the engine plus a small set of built-in modules (the ansible.builtin collection). The ansible package on PyPI bundles ansible-core PLUS hundreds of curated community collections so playbooks "just work" out of the box. For minimal Execution Environments and CI, prefer ansible-core and explicitly list collections in requirements.yml.

How do I downgrade if 2.20.4 breaks something?

pip install ansible-core==2.20.3 --force-reinstall

Then file an issue at https://github.com/ansible/ansible/issues including ansible --version output and a minimal reproducer playbook.

Where can I see the full changelog?

The authoritative changelog is at https://github.com/ansible/ansible/blob/stable-2.20/changelogs/CHANGELOG-v2.20.rst — every CVE, bug ID, and PR is linked from there.

Related Articles

Ansible-Core 2.18.15 Release — Maintenance UpdateAnsible 14.0.0a3 Pre-Release: What's New in Ansible 14 (Preview)Ansible Core 2.21.0b3: What's New in the Latest Beta (Preview Guide)

Category: installation

Browse all Ansible tutorials · AnsiblePilot Home