With version 3.0 of the automation tool, the Ansible community has finally cleared the way for independent development cycles and a more modular organization. From the point of view of the code, the version number itself is probably the most striking new feature: Ansible 3.0 differs little in terms of functionality from its predecessors.
Nevertheless, it marks the end of a major conversion phase, which was already prepared in the previous versions 2.9 and 2.10 and has now been completed, because instead of coupling the approval process of individual components with each other as before, development should in future run independently of each other. Ansible 2.9 has introduced the so-called collections as a distribution mechanism for Ansible components, version 2.10 then divided the previous scope of delivery into the core component Ansible-Base and a collection of additional collections.
Pay attention to the version number when updating
With Release 3.0, Ansible is now a meta-distribution, which in turn only defines the exact versions of the collections it contains. Accordingly, the version number of the entire package no longer follows Ansible-Base, the current version number of which is still 2.10. Rather, it is based on the principle of semantic versioning. New minor releases should appear every three weeks, which only contain backward-compatible adjustments. Incompatible changes are reserved for the major releases, which are scheduled for every six months.
The development is currently on the move at a faster pace. The next major Ansible release 4.0 is planned for May. This should then be based on version 2.11 of the basic functions renamed from Ansible-Base to Ansible-Core. The current Ansible 3.0, on the other hand, is content with the Ansible Base 2.10, which was released last autumn. This gives the following overview:
- Ansible 2.9: All in one, collections as a technology preview
- Ansible 2.10: Division into Ansible-Base and Collections
- Ansible-Core 2.11: Renaming of Ansible-Base to Ansible-Core (not yet available)
- Ansible 3.0: Community Package, based on Ansible-Base 2.10 + Collections
- Ansible 4.0: Community Package, consisting of Ansible-Core 2.11 + Collections (not yet available)
Few technical changes
In addition to the fundamental organizational changes, Ansible 3.0 also contains some technical innovations. For example, a separate module takes care of user-specific ssh settings. Anyone who operates a container platform based on Kubernetes can now manage Helm packages with the appropriate modules via Ansible. In addition, a new connection plug-in performs tasks in Docker containers and additional lookup plug-ins make it easier to deal with complex variables. The Ansible 3.0 changelog contains a complete list of all changes.