Introduction to Ansible and its Architecture components
In this article, we will discuss the overview of ansible and will mainly focus on its architecture part. Let’s discuss it one by one.
Ansible is an IT automation engine that can automate various IT needs. And it has features like application deployment that means you can deploy your application easily as per your requirements, cloud provisioning, configuration management is also the main feature where you can configure and describe your automation job, and intra-service orchestration. In this, (Yet Another Markup Language)YAML is used for configuring that helps for describing automation jobs as per requirement. It is Designed for multi-tier deployments, Ansible models the IT infrastructure by describing how various systems interrelate, instead of managing one system at a time.
- In this, It uses no extra functionality and cost like no agents and no extra custom security infrastructure, hence it is easy to deploy.
- It uses a very simple language called YAML (Yet Another Markup Language) in the form of Ansible Playbooks and you can configure it as per your requirement, and it helps describe the automation jobs in a way that looks like basic English.
- The Ansible Automation Engine has a direct interaction with the users who write playbooks and also interacts with cloud services and the Configuration Management Database (CMDB).
Architecture components :
Here, we will discuss the architecture part and will discuss its components. The Ansible automation engine consists of various components as described below as follows.
- Inventories –
Ansible inventories are lists of hosts with their IP addresses, servers, and databases which have to be managed via an SSH for UNIX, Linux, or Networking devices, and WinRM for Windows systems.
- APIs –
Application Programming Interface or APIs are used as a mode of transport for public and private cloud services.
- Modules –
Modules are executed directly on remote hosts through playbooks and can control resources like services, packages, files, or execute system commands. They act on system files, install packages and make API calls to the service network. There are over 450 Ansible that provide modules that automate various jobs in an environment. For example, Cloud Modules like Cloud Formation create or delete an AWS cloud formation stack.
- Plugins –
Plugins are pieces of code that augment Ansible’s core functionality and allow executing Ansible tasks as a job build step. Ansible ships with several handy plugins and one can also write it on their own. For example, Action plugins act as front-ends to modules and can execute tasks on the controller before calling the modules themselves.
- Networking –
Ansible uses a simple, powerful, and agent-less automation framework to automate network tasks. It uses a separate data model and spans different network hardware.
- Hosts –
Hosts refer to the nodes or systems (Linux, Windows, etc) which are automated by Ansible.
- Playbooks –
Playbooks are simple files written in YAML format which describe the tasks to be executed by Ansible. Playbooks can declare configurations, orchestrate the steps of any manual ordered process and can also launch various tasks.
- CMDB –
It stands for Configuration Management Database (CMDB). In this, it holds data to a collection of IT assets, and it is a repository or data warehouse where we will store this kind of data, and It also defines the relationships between such assets.
- Cloud –
It is a network of remote servers hosted on the internet to store, manage and process data instead of storing it on a local server.