The Ansible configuration management tool is used to automate the packaging and provisioning of software into an organization's operational IT environment. It includes multi-node deployment, along with ad hoc task execution. Ansible configuration management is relatively new, being first released in 2012. Ansible is used by companies including Hootsuite, CloudPhysics and Lifesum and is developed and maintained under the auspices of Red Hat.
Ansible configuration management tool is written in Python, and is made available under the GPLv3+ license.
Components of Ansible configuration management tools
Nodes are managed under SSH and must run Python 2.4 or later -- those with Python 2.4 or 2.5 require a JSON-specific library, python-simplejson. The control machine must have Python 2.6 or later installed. Modules work over JSON. YAML is used to express reusable descriptions of systems through Ansible Roles. Another key capability of Ansible is in managing idempotency, which is the capability to revert a system back to the same state.
Ansible Roles can be used as objects in Ansible Playbooks. These Playbooks declare configurations, along with providing the input for orchestration of the steps required to provision an application. Playbooks also allow for synchronous and asynchronous launching of tasks.
Another key element of Ansible configuration management is that its modules do not have to be written in a specific language, because it uses YAML and JSON. Therefore, existing skills within an IT team in Ruby, Python, PERL or bash scripting can apply to its use. Ansible also has its own near-natural language domain-specific language. As such, users state that the learning curve for Ansible configuration management is generally quite low.
However, a major complaint around the basic Ansible configuration management package is that its front end is reported to be awful. Indeed, the graphical user interface (GUI) and the command-line interface (CLI) are not kept in sync, meaning that different results could be found when using each interface. This has led to the rise of Ansible Tower, a GUI used as a front end to Ansible itself. Tower pulls together REST APIs and the Ansible CLI into a single coherent environment.
Ansible Tower is available as four different versions.
- There is a full-function, free for a limited time trial version.
There are then three main paid subscription versions:
- A limited functionality Ansible Tower self-service, which provides support for up to 100 nodes at $5,000 per annum or up to 250 nodes at $10,000 per annum, both with no technical support, but including upgrades;
- A full-function version, called Ansible Standard, which provides eight hour, five day per week support with full enterprise features at $10,000 per annum for up to 100 nodes, $20,000 per annum for up to 250 nodes leading to over 1,000 nodes being $50 per node per annum; and
- Ansible Premium, which brings in 24/7 support starting at $14,000 per annum for up to 100 nodes, tiering through to $70 per node per annum for above 1,000 nodes.
Ansible Galaxy is the key area for the active Ansible-user community, currently with over 4,000 members. Here, users can download and work with modules and playbooks.
The current version of Ansible is 126.96.36.199, released in May 2016, and can be downloaded from GitHub.
Ansible supports a range of Linux distributions, as well as Unix variants along with Windows and OS X. However, Ansible's control machine cannot run on a Windows OS. Due to how Ansible works, the control machine can even be a laptop.
Due to the flexibility, simplicity and low to no resource impact of Ansible with Ansible Tower, it is a suitable CM tool for organizations of all sizes.
Learn why configuration management is so essential for organizations to stay ahead
Read about the primary functions of a configuration management process