Towards Automation
Published: 2019-11-13 09:06:47

Ansible is an open source automation platform. It is very simple to setup and yet powerful. Ansible can help you with configuration management, application deployment, task automation. It can also
do IT orchestration, where you have to run tasks in sequence and create a chain of events which must happen on several different servers or devices. Unlike Puppet or Chef it doesn’t use an agent on the remote host. Instead Ansible uses SSH which is assumed to be installed on all the systems you want to manage. Also it’s written in Python which needs
to be installed on the remote host. This means that you don’t have to setup a client server environment before using Ansible, you can just run it from any of your machines and from the client’s point of view there is no knowledge of any Ansible server.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/1lcg568f2yskoud562pf.png)
IMPORTANCE OF  ANSIBLE

Well before I tell you what is Ansible, it is of utmost importance to understand the problems that were faced before Ansible. Let us take a little flashback to the beginning of networked computing when deploying and managing servers reliably and efficiently has been a challenge. Previously, system administrators managed servers by hand, installing software, changing configurations, and administering services on individual servers. As data centres grew, and hosted applications became more complex, administrators realized they couldn’t scale their manual system’s management as fast as the applications they were enabling. It also hampered the velocity of the work of the developers since the development team was agile and releasing software frequently, but IT operations were spending more time configuring the systems. That’s why server provisioning and configuration management tools came to flourish.

Consider the tedious routine of administering a server fleet. We always need to keep updating, pushing changes, copying files on them etc. These tasks make things very complicated and time consuming.

But let me tell you that there is a solution to the above stated problem. The solution is – Ansible. But before I go ahead to explain you all about Ansible, let me get you familiarized with few Ansible terminologies:

    1. Controller Machine: The machine where Ansible is installed, responsible for running the provisioning on the servers you are managing.
    2. Inventory: An initialization file that contains information about the servers you are managing.
    3. Playbook: The real strength of Ansible lies in its Playbooks. A playbook is like a recipe or an instructions manual which tells Ansible what to do when it connects to each machine. Playbooks are written in YAML, which simplistically could be viewed as XML but human readable.
    4. Task: A block that defines a single procedure to be executed, e.g. Install a package.
    5. Module: A module typically abstracts a system task, like dealing with packages or creating and changing files. Ansible has a multitude of built-in modules, but you can also create custom ones.
    6. Role: A pre-defined way for organizing playbooks and other files in order to facilitate sharing and reusing portions of a provisioning.
    7. Play: A provisioning executed from start to finish is called a play. In simple words, execution of a playbook is called a play.
    8. Facts: Global variables containing information about the system, like network interfaces or operating system.
    9. Handlers: Used to trigger service status changes, like restarting or stopping a service.

ORGANIZATIONAL BENEFITS
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/gwdf1pe4tjneq1vcffta.png)

> 1. Ansible reduces the need for dedicated system administrators.
> 2. It is an agentless delivery system that makes it a lot easier to manage switches and storage arrays.
> 3. Easy to set up results in higher efficiency and reduced costs.
> 4. Ansible lets the organization overcome all the project complexities to increase productivity.

USE OF ANSIBLE
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/l8n80pa3b613pwm4bbwq.png)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/sbad1iea0cjefjm27s6j.png)
JOB OPPORTUNITIES

1. According to ZipRecruiter, Ansible developers are earning $121,045 annually.
2. Top companies like Oracle, BOEING, IBM, Capgemini, Target, and so on are hiring Ansible developers.
3. Become eligible to apply for over 27K jobs available in INDIA for Ansible developers.
4. An individual without a graduate level computer science degree can also land a high-paying job as an Ansible expert.
5. Ansible Automation Engineer


Keep Automating!

Written by Jobin Keecheril & Aditi Munde