Originally developed by Michael DeHaan back in 2012, Ansible is a simplistic, open-source IT automation engine that’s used to configure and manage computers, combine multi-node software development, execute ad hoc tasks, automate cloud provisioning, and other related IT tasks. Because there are no user agents or additional security infrastructure, it’s particularly easy to deploy. This ease of deployment has made Ansible a popular choice of free software platform among IT organizations and professionals.

Ansible’s Multi-Tiered Focus

Ever since it was first released, Ansible has been designed for multi-tier deployments. It describes the way in which a system relates in an IT infrastructure, as opposed to managing a single system per instance. Furthermore, Ansible uses an incredibly simple programming language, dubbed “YAML,” which allows organizations to describe their automation jobs in simple, easy-to-understand terms.

“The key ideas were to make a good automation system that realized computers were a group of machines, not just individual boxes, which I had long described as multi-tier orchestration,” explained DeHaan on his personal blog.

Ansible aims to keep the descriptions of IT workflow understandable and easy to implement. As such, organizations will benefit from greater efficiency and faster product deployment. The engine offers the perfect balance between ease of use and high-tech, expert-driven features. So while it’s relatively easy to use, Ansible is still loaded in powerful features.

How Ansible Works

Ansible works by networking multiple nodes within a system while simultaneously creating small programs called “Ansible Modules,” which are essentially resource models for the state of the system. Ansible executes the Modules over Secure Shell (by default), at which point they are deleted upon completion. An organization’s Module library can be located on any machine. This eliminates the need for dedicated servers, databases, daemons, etc.

While Ansible supports the use of passwords, a smarter and more secure option is to use SSH keys with agents.

Advanced Features

Ansible also supports numerous advanced features, such as conditional execution of tasks, the gathering of variable and information from remote systems, spawning of asynchronous long running actions, the ability to tag parts of a configuration, toggle between a push or pull configuration and more.

Fun Fact: Ansible received its namesake based on the fictional hyperspace communication system first described in the Orson Scott Card’s sci-fi literary masterpiece Ender’s Game.

Ansible has the following design goals:

Minimal

Consistent

Secure

Reliable

Easy to learn

If you’re interested in learning more about Ansible and how it works, head over to the official docs page at docs.ansible.com.