Introduction to Ansible

In this post we’re going to get started with Ansible, In this Introduction to Ansible series I will be covering every aspect of this tool from basics to advanced.

So let’s get started,

What is Configuration Management tool?

Configuration Management is the practice of handling updates and changes systematically so that a system maintains its integrity over time. In basic terms CM is all abt  maintaining the config of server where app will run.

For example:

  • We need to run java application, for this we need environment. 
  • To create environments we need to create servers.
  • Once the servers are created we need to do technology specific and application specific operations/commands which will run our java application.
  • This all can be automated by Ansible.

What is Ansible?

Ansible is an open-source software provisioning, configuration management, and application-deployment tool.

Features of Ansible?

  1. Simple and Open Source: Uses a simple syntax written in YAML called playbooks and easy to install.
  2. Agentless: No agents/software or additional firewall ports that you need to install on the client systems or hosts which you want to automate.
  3. Powerful and Flexible: Written in Python and modules can be extended.
  4. Efficient: Ansible introduces modules as basic building blocks for your software. So, you can even customize it as per your needs.
  5. Highly Scalable.

Type of Configuration Management Tools:

Requirement of Ansible:

SSH Client and Python on nodes / hosts.

SSH Client, Python and Ansible in Ansible Master/Ansible Automation Engine.

Ansible Uses:

Configuration Management: Ansible can be used to install required software and application dependencies. For e.g. If you wish to install new version of Tomcat on all of machines present in your organization, it is not feasible for you to manually go and update each and every machine. You can install Tomcat in one go on all of your machines with Ansible playbooks and inventory written in the most simple way.

Provisioning:

Provisioning is the process of setting up IT infrastructure. It can also refer to the steps required to manage access to data and resources, and make them available to users and systems. 

Provisioning is not the same thing as configuration, but they are both steps in the deployment process. Once something has been provisioned, the next step is configuration

Orchestration:

In very simple terms orchestration is automated configuration, coordination, and management of computer systems and software. i.e How different servers or component interact with each other for seamless interaction.

Application Deployment

 Write an deployment declarative steps in Ansible playbook and sit back watching Ansible executing these tasks in order deploying those applications on server.

In the next post we will be seeing the Architecture of Ansible.

Do let me know in the comment section for any queries.