In today’s world, automation is very important and especially in IT because of the large number of processes it involves. IT automation has a lot of layers to it but if one is to understand it in a very basic way is,
“The use of instructions to create a repeated process that replaces an IT professional’s manual work in data centers and cloud deployments.”
Software tools, frameworks, and appliances can perform these tasks with minimum administrator intervention. The scope of IT automation ranges from single actions to discrete sequences and, ultimately, to an autonomous IT deployment that takes actions based on user behaviour and other event triggers.
There are few leading tools like Ansible, Chef, Puppet, etc in IT automation which are used in DevOps for automation of these tasks. Out of all these options, Ansible is the most preferred automation engine right now and you would’ve agreed too if you knew its powers. Do not worry, I will make it easy for you to understand.
For this, let’s benign with the most basic question:
Table of Contents
What is ‘Ansible’?
Ansible is a simple IT automation engine that automates provisioning, configuration management, application deployment, orchestration, and many other IT needs. It is primarily intended for IT professionals, who use it for application deployment, updates on workstations and servers, cloud provisioning, configuration management, intra-service orchestration, and nearly anything a systems administrator does on a weekly or daily basis. Its playbook is written in YAML language which is common and easy to use among developers and DevOps engineers.
But what makes Ansible special is that
- Playbooks are written in simple YAML and is easy to setup. (scripting made easy).
- With one command playbook execution, no additional configuration is required. (quite simple)
- Ansible is completely agentless. No need to install additional software on your server nodes to manage Ansible.
- Ansible encourages you to name each ‘task’ in your provisioning script, and then it reports whether that task succeeded with-or-without changes, or failed, and any error messages. (automatic step-by-step reporting)
- No extra software on your servers means more resources for your applications. Also, since Ansible modules work via JSON, Ansible is extensible with modules written in a programming language you already know. Ansible introduces modules as basic building blocks for your software. So, you can even customize it as per your needs. Hence, super-efficient.
- Powerful & Flexible: Ansible has powerful features that can enable you to model even the most complex IT workflows. It can manage the infrastructure, networks, operating systems and services that you are already using, as Ansible provides you with hundreds of modules to manage them.
- IaC ( Infrastructure as code) – infrastructure defined as, and described through code in Ansible. It eases the process of continuous integration and continuous deployment techniques by reducing the elements of human errors.
Delighted already? The show’s only begun. You also have to know the:
Key Highlights of Ansible!
- Ansible uses no agents and no additional custom security infrastructure.
- Essentially, the desired state of the entire IT infrastructure can be described in the form of Ansible Playbooks, which are files written in a very simple language, YAML.
- By default, Ansible represents what nodes it manages using a very simple file which organizes the managed machines in custom groups.
- Ansible will configure each node to the described state, rather than just managing one node or system at a time.
As the proverb goes, “Half knowledge is always dangerous.”. So, my intention of letting you know about Ansible would be incomplete if I do not let you know,
How Ansible Works!
Ansible works by connecting to the nodes over SSH and pushing out small programs, called “Ansible Modules”, to them. Ansible then executes and removes them when finished. Because these modules are simple Python scripts, and Ansible is agent-less, the target hosts only require an SSH connection and Python installed.
Besides simplicity, another advantage of using Ansible over Chef or Puppet is that there are no servers, daemons, or databases required – all you need to do is to install Ansible on the host, Python on the targets, and have SSH access.
I mean, come on! It’s an automation engine that in itself is so easy to use that all you’d need to do is to open up a few YouTube videos and there you go.
In machinery terms, it’s as easy as pulling a lever or pressing a button and letting a series of machines function on their own.
Ansible does all of these without even demanding for costly operating systems or cloud providers.
If you still wish to know more about this engineering beauty or about its implementation then feel free to drop me a personal email at [email protected]
This is just the beginning. I’ll keep you posted with more operational blogs ahead.