Introduction

Ansible, the open-source automation platform, has released a new version with numerous enhancements, bug fixes, and security updates. Ansible has become a fundamental tool for managing IT infrastructure and applications, streamlining workflows, and maintaining infrastructure as code (IaC) principles.

Ansible 2.16

Let’s delve into the key changes introduced in this release:

Important Changes:

  • Drop Python 3.5 support for module execution.
  • Drop Python 3.9 support for the controller.
  • Add Python 3.12 support.
  • Preserve display context when proxying display over the queue.
  • Update TaskExecutor to not unnecessarily establish persistent ansible-connection when not needed.

Ansible Enhancements

  • Collection Path

The INI config option “collections_paths” has been deprecated; please use the singular form “collections_path” instead. Additionally, the environment variable “ANSIBLE_COLLECTIONS_PATHS” is now deprecated, and you should use the singular form “ANSIBLE_COLLECTIONS_PATH” instead.

  • Removed Support for Windows Server 2012 and 2012 R2 as Microsoft’s support end of life on October 10th, 2023.
  • Remote Support

New remotes have been added, including Alpine 3.18, Fedora 38, Fedora 38 container, FreeBSD 13.2 remote, RHEL 8.8 remotes, and RHEL 9.2 remotes, expanding compatibility across various platforms.

  • Python 3.12 Support

Support for testing with Python 3.12 has been introduced, keeping Ansible up-to-date with the latest Python version.

  • Improved Container Naming

Containers created by ansible-test now include the current test session ID in their name, avoiding conflicts between concurrent ansible-test invocations.

  • Improved Test Provisioning

RHEL 8.8 and RHEL 9.2 provisioning can now be used with the --python 3.11 option, improving testing flexibility.

  • Streamlined Code Coverage

Thread code coverage has been enabled alongside existing multiprocessing coverage, enhancing code quality assurance.

  • RHEL 8.8 and RHEL 9.2 Support

Provisioning for RHEL 8.8 and RHEL 9.2 has been added, expanding compatibility for Red Hat Enterprise Linux users.

  • Deprecated Features Removal

Several deprecated features have been removed, including the ‘smart’ connection option, deprecated INI config options, and support for older Windows Server versions.

CLI Improvements

  • Improved CLI Argument Parsing

Support for automatically prepending with the help of CLI arguments that support being specified multiple times has been added, streamlining the command-line interface.

  • Default Transport

DEFAULT_TRANSPORT now defaults to ‘ssh,’ while the ‘smart’ option is deprecated due to the decreasing relevance of control persist in newer OpenSSH versions.

Porting Guide

  • Python Type Hints

One notable update is the addition of Python-type hints to the Display class, contributing to improved code readability and maintainability.

  • Galaxy Collection Warning

To enhance user control, a new option, `GALAXY_COLLECTIONS_PATH_