Ansible is simple open source IT engine which automates application deployment, intra service orchestration, cloud provisioning and many other IT tools.
Ansible uses playbook to describe automation jobs, and playbook uses very simple language i.e. YAML which is very easy for humans to understand, read and write. Hence the advantage is that even the IT infrastructure support guys can read and understand the playbook and debug if needed (YAML — It is in human readable form).
Ansible is designed for multi-tier deployment. Ansible does not manage one system at time, it models IT infrastructure by describing all of your systems are interrelated. Ansible is completely agentless which means Ansible works by connecting your nodes through ssh(by default). But if you want other method for connection like Kerberos, Ansible gives that option to you.
How Ansible Works?
Ansible works by connecting to your nodes and pushing out small programs, called “Ansible modules” to them. Ansible then executes these modules (over SSH by default), and removes them when finished. Your library of modules can reside on any machine, and there are no servers, daemons, or databases required.
The management node in this picture is the controlling node (managing node) which controls the entire execution of the playbook. It’s the node from which you are running the installation. The inventory file provides the list of hosts where the Ansible modules needs to be run and the management node does a SSH connection and executes the small modules on the hosts machine and installs the product/software.
Beauty of Ansible is that it removes the modules once those are installed so effectively it connects to host machine , executes the instructions and if it’s successfully installed removes the code which was copied on the host machine which was executed.
Microsoft : Case Study
Microsoft turned to Ansible to improve the productivity of hundreds of engineers across 600 locations worldwide. Those engineers use Ansible for designing, building and deploying IT networks at scale, and the use of Ansible Automation has saved an estimated 3,000 work hours per year and reduced downtime.
Using Red Hat Ansible Automation Platform and working with Red Hat Consulting, Microsoft created a standardized, centralized network automation environment that reduces routine, repeatable tasks and complexity.
Before Microsoft integrated Ansible in their technology infrastructure, they were using Python for automation. Python is a very versatile language and this can be understood by the fact than even Ansible is written in python but Ansible uses RAL(Resource Abstraction Layer) to make the tasks much easier for the user.
Automate once, Deploy anywhere
Ansible’s library of Azure modules makes it easy to provision instances, networks, and complete Azure infrastructure whenever you need, and in any region you require. For example, the same simple Playbook language you use for application deployment and on-prem automation also provisions your Azure infrastructure, applying the correct configuration.
Once you use Ansible to define your application locally, you can repeatedly deploy and redeploy the application. Re-deploying it to a different infrastructure is as straightforward as defining your Azure environment and then applying your application’s Playbook. No more surprises. Because of its power and flexibility, Ansible ensures your Azure deployments work seamlessly in a hybrid cloud configuration as easily as you build a single system.
Ansible as a Configuration management tools offers a way to control one to hundreds of servers from a centralized location, which can dramatically improve the efficiency and integrity of your server infrastructure.