Ansible is an Open-Source IT Automation Engine which is used to automate application deployment, infrastructure automation, cloud provisioning and many IT services. Ansible improves the scalability, consistency & reliability of the IT environment.
Ansible is easy-to-deploy as it is agentless and doesn't require any security infrastructure. Ansible uses the concept of playbook and uses a language YAML (Yet Another Markup Language) for it's configuration management. It's advantage is that playbooks are so simple that even the support guys can debug it.
No software is required at the managing node for automating the work. Also being agentless, it is extremely simple to automate the devices without need to install any client softwares. Ansible even works for he devices for which the API's are not available. The net result being that Ansible is able to automate any kind of devices using ansible.
Ansible is Free as well as OpenSource with all the code publically available on GitHub. Being an OpenSource and community-driven software, it's presence in the industry is gradually increasing.
Ansible was first build for Linux Operating System but due to its flexibility and extensiblity the Ansible architecture has been developed for Windows and various flavours of Linux.
Ansible is used by operation teams to manage the deployment, monitoring and management of various type of applications. Integrating Ansible with network infra expands the possible when new applications are to be turned up or migrated.
Ansible being idempotent allows the defined task to run one time or thousands of time without having an adverse effect on the target system or the system making the changes (one acting as master).
Ansible being agentless, there is no push or pull to prevent configuration drift. i.e. we need not to think about the version of slave and its compatiblity with the master.
Ansible works by connecting the nodes and pushing small programs termed as ansible modules. Ansible executes these modules over SSH and remove them when finished.
Ansible master node (management node) is the controller node and it controls the execution of playbook. Inventory file provides the list of hosts where we need to run the Ansible modules. The master node makes the connection and executes the modues on host machine. When the module is installed, the files are removed from the device.
“ Ansible is quite fun to use right away. As soon as you write five lines of code it works. With SSH and Ansible I can send commands to 500 servers without having even used the servers before.”
Mark Mass, System Admin BinckBank
Here, the problem was complexity in the datacenter. BinckBank wanted automation but also wanted simplicity and to not have to send people to training in order to use the product.
BinckBank has 600 UNIX servers. They have a lot of specialty
environments that they need to create while at the same time managing
the production environment. SSH makes the rest of the work easy because it is text-based, making it really powerful when combined with Ansible. With SSH and Ansible BinkBank can send commands to 500 servers without having even accessing the servers.
From an IT standpoint BinkBank clained that if they install a production and testing environment with Ansible it will be done right. Unless you do the work by hand there is always the question—did you install correctly? With Ansible BinkBank was assured without a shadow of a doubt that an installation is correct. Ansible makes it easier to trust my their own work and their servers’ work. Ansible gave them a peace of mind on a much bigger scale.
Ansible is a tool in my toolbox that BinkBank can use throughout their life. For example, An IT guy could walk into an enterprise environment he is unfamiliar with, fix something right away and walk out.