Ansible Tool Introduction

What is Ansible?

Ansible is an Open Source tool, used as a “Configuration Management System” designed to control a large number of servers. It is used to deploy applications and provision software. Easy to use for systems administrators and DevOps teams. It allows DevOps teams to control many different nodes or systems from a central ansible server.


What is a Configuration Management(CM) system?

Configuration Management (CM) is a systems engineering process for establishing and maintaining the following activities:

  • Package Installation
  • Configuration of Servers
  • Continuous testing of already installed applications
  • Provisioning
  • Orchestration
  • Automation of tasks

Why Ansible?

  • It is an open source application
  • Agentless —  No need for agent installation and management.
  • Python/YAML based scripting for automating the tasks.
  • Highly flexible and configuration management of the systems.
  • A larger number of ready to use modules(Predefined).
  • Custom Modules.


Ansible Architecture

Ansible Terminology:

There are 5 core sections in Ansible:

  • Controller Machine
  • Inventory
  • Module
  • Tasks
  • Playbooks

Controller machine:

The controller machine is known as the Ansible Master, where Ansible is installed and configured is referred to as an Ansible Master or Controller Machine. The controller server will do the orchestration work.


Inventory is nothing more than a list of the server IP addresses that contains all node IP’s. By adding a node IP in the inventory file we can deploy the applications to the nodes through an SSH Connection.


A module is a Fundamental unit in Ansible. It is also referred to as “Task Plugins” or ” Library Plugins”.  Modules can be used in two ways:

  • Ad-hoc Commands
  • Playbooks


A task is a single procedure or works to be executed, installed or configured in the process.


Playbooks are a set of tasks written in python/YAML scripting languages. There are different sections in the ansible playbook:

  • Hosts and users
  • Tasks
  • Handlers
  • Ansible Variables
  • Ansible loops

Venkata Narayana Yarava

Venkata Narayana Yarava is an experienced Cloud DevOps Engineer with exposure to various technologies, he has a experience in DevOps Training and with different IT environments. He has a huge passion for automation technologies, specifically DevOps Tools, OpenStack, AWS, Linux, open source software. If you enjoy our articles please support us and make a small contribution: Buy Us A Coffee