This content is part of the Buyer's Guide: The steps in selecting the right configuration management system

An in-depth view into the Ansible configuration management option

Ansible configuration management technology is flexible and available in a range of options. Learn the ins and outs of its products designed to meet IT configuration management needs.

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.

Ansible configuration management is different from most other CM tools in that it does not operate in a client-server, or master-minion, mode. Instead, it uses secure socket shell (SSH) and JavaScript Object Notation (JSON) to distribute modules to remote nodes. In this way, Ansible configuration management only uses resources when it is doing useful work. If the node is not being modified- Ansible has no agent or daemon working in the background. This setup also takes into account the contextualities between different systems in a multi-tier IT environment.

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.

Ansible Playbook
Ansible Playbook orchestrating configuration change

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, 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.

Next Steps

Learn why configuration management is so essential for organizations to stay ahead

Read about the primary functions of a configuration management process

Discover why configuration management software can help companies adopt a DevOps environment

Dig Deeper on Configuration Management and DevOps