Blog > Introduction to Ansible
Why Ansible?
Ansible is a DevOps environments tool for helping manage the service and falls on the operations side of the DevOps equation. It allows for maintaining all the different servers such as web servers running Apache, and database servers running MySQL. It isn’t easy to maintain many servers by hand simultaneously here. Ansible helps become an efficient operation.
Like other system solutions such as Chef and puppet, Ansible uses code to write and describe the installation and set up multiple servers.
What is Ansible?
Ansible is an IT automation, configuration management, and provisioning tool. It makes sure that all the necessary packages and software are downloaded and installed in the system to run the application. Ansible is a tool that allows us to create and control three key areas that are useful within the operational environment such as:
IT Automation: The user can write instructions that automate the IT setup that the user would typically do manually in the past.
Configuration Management: Provides consistent configuration; imagine setting up hundreds of Apache servers and guaranteeing with precision that each of those Apache servers is set up identically.
Automatic Deployment: As users need to scale up their server environment, they will just need to push instructions to deploy different servers.
Pull Configuration Tool: There are two different ways for Ansible to set up different environments for server farms. One way is to have a key server that has all the instructions on and then on each of the servers that connect to that main master server; it provides a piece of software known as a client on each of those servers that would communicate to the main master server and then would periodically either update or change the configuration of the slave server; this is known as pull configuration.
Its alternative is push configuration which is slightly different; the main difference is as with pull configuration has a master server where the user can put the instructions, but unlike the pull configuration where the user needs a client installed on each service with a push configuration, the user has no client stored on the remote server.
The user will push out the configuration to the servers and force a restructure or a fresh, clean installation in that environment. So, Ansible is one of those second, advanced ways to push configuration servers.
Configuration Management
- Establish and maintain consistency in a product’s performance.
- Maintains physical attributes with its requirements and design.
- Preserves operational information throughout its life.
Features of Ansible
- It is agent-less; there is no software or agent to manage nodes, unlike Chef and Puppet.
- It is built on Python and provides a lot of functionalities of python.
- Uses SSH for secure connections.
- It also follows Push based architecture for sending configurations.
- Very easy and fast to set up, with minimal requirements.
Push Based Vs. Pull Based
Tools like Puppet and Chef Are Pull-based. Here agents on the server periodically check for the configuration information from a central server (Master).
Ansible is push based on its central server pushing the configuration information on target servers. The user can also control when the changes are made on the servers.
Highly Scalable & Available
It can scale up to 1000’s on nodes. And runs with a single active node, called the primary instance; if the primary goes down, there is a second instance to take its place.
Ansible Playbook
The playbook is a core part of Ansible, whatever configuration details that users write in the playbook. The entire IT infrastructure gets automated by using a playbook. The playbooks are written in YAML code which is a very simple data serialization language. It is very human-readable and almost like English.
Author: SVCIT Editorial
Copyright Silicon Valley Cloud IT, LLC.