Many configuration management tools are available in the market.
Mainly following config tools plays major role in IT industry
Puppet and Chef are agent based and developed using Ruby
SaltStack is developed using Python and it is having both Agent based and agent less management.
Ansible is agent less configuration management tool developed using python.
Agent less means, no need to install any additional software/packages of Ansible in managed nodes.
In Ansible world, servers are classified in two categories as below,
- Controller Machine,
- Managed Nodes
Controller Machine is the server where Ansible product is installed and it will control the clients/Managed Nodes.
These are servers/Machines which are controlled/managed by the Controller Machine. In Managed node, no need to install any ansible packages.
Requirements for Ansible:
1) Control Machine
It should be the Linux machine and installed with Python 2 (versions 2.6 or 2.7) or Python 3 (versions 3.5 and higher)
Note: Currently Windows machine isn’t supported as the control machine.
2) Managed Nodes
Managed nodes are any machine/server/device with SSH Enabled and Python 2.6 or later
As a pre-requisite, we need user ID in managed nodes with either passwordless ssh (key based) authentication setup or password based authentication.
And sudo access is required for that user id in managed nodes.
It is a YAML file that describe the desired state of an IT infrastructure
It is a piece of code written in Python, PowerShell, or any other language to perform the task. Ansible has hundreds of modules to do our tasks.
It is an INI file that contains list of hosts/servers which you are managing via Ansible. It can be static or dynamic inventory file.
It is a piece of code that you can add to Ansible to extend it
It is a Web based user interface to manage Ansible engine