Close

2022-07-02

What Is Ansible?

What Is Ansible?

Ansible is an open-source software platform for automating and configuring IT infrastructure. It is used to manage and automate various IT operations, including the deployment of applications, the configuration of systems, and the orchestration of complex workflows.

Ansible operates on a “push” model, pushing changes from a central control node to the target systems. This contrasts with “pull” models, such as Puppet, where target systems pull configuration changes from a central repository.

Ansible architecture is based on three main components:

  1. Inventory: A list of target systems and their properties, including hostnames and IP addresses.
  2. Playbook: A set of instructions written in YAML that describe the desired state of the systems. Playbooks are executed on the control node and pushed to target systems.
  3. Modules: Pre-written code that can be called from playbooks to perform specific tasks, such as installing software or starting a service.

Ansible Tower is a commercially-supported version of Ansible that provides a web-based UI, REST API, and task engine. It adds role-based access control, centralized logging, and real-time job status updates.

Hootsuite, a social media management company, demonstrates one use case of Ansible. Hootsuite uses Ansible to automate the provisioning and configuration of its infrastructure, which includes thousands of servers and services across multiple data centers. This has allowed Hootsuite to reduce the time and effort required to manage its infrastructure while improving reliability and consistency.