Red Hat Ansible Engine 2.7 is now available, featuring improved stability, speed and performance.
Preparing for the Future
Ansible Engine 2.7 continues to improve compatibility with modern versions of Python. As a result of changes to support newer versions of Python, support for running Ansible Engine with Python 2.6 has been removed. Management of systems with Python 2.6 installed is still possible, though the system Ansible Engine is running from must have Python 2.7 or Python 3.5 or later. This means if ansible-pull is being used the system running ansible-pull will need Python 2.7 or Python 3.5 or later.
A new file locking feature is designed to prevent race conditions when delegating to a central resource. For example, if a play calls for several hosts to write to a single file on a remote host it is likely multiple hosts would attempt to write to the file at the same time. This can now be done in Ansible Engine 2.7.
Deprecating use of features is often a challenging task. This task can be even more challenging when it involves multiple Ansible core modules. In Ansible Engine 2.7, several modules have had __file__ deprecated to allow for future optimizations.
Improving Automation of Linux Environments
Speed matters. There is only a finite amount of time during the day and the Ansible team wants to help folks to make the most of it. This is why Ansible Engine 2.7 changes the strategy for running modules remotely so that invoking a module only needs to invoke python once per module on the remote machine instead of twice. This means an entire thread has been eliminated from module executions thus speeding up Ansible tasks.
Ansible Engine 2.7 now features a reboot module to reboot a machine and respond to commands once the machine comes back up. This is an example of how Red Hat is committed to helping to keep Ansible easier to use. Use of this module is available on *nix systems only. If rebooting a Windows machine see, win_reboot.
Improving Management in Unreliable Environments
Ansible Engine 2.7 brings with it new functionality to help better manage infrastructure in connectivity-challenged spaces. ignore_unreachable has been added to allow for skipping tasks on hosts that are unreachable, instead of aborting the play altogether. This is useful for scenarios where the infrastructure is not 100% reliable (such as problematic cloud or edge locations).
In total, there are 157 changes in Ansible Engine 2.7. Details for these changes can be found in the changelog. Thank you to everyone who has had a hand in this release.