So, Let’s get started.
- User writes instructions in the file called as Ansible playbooks.
- User updates/write/create inventory which is basically list of nodes in the inventory file.
- User executes playbook.
- Now Ansible converts the playbook into python executables in Ansible Master / Engine.
- Now Ansible run those executables on hosts for configuration.
Now we know the flow let us try to break individual component and understand them.
Playbook: Playbooks are declarative specification file written in YAML which describe the tasks that need to be executed.
Inventories: These are a list of nodes. Inventories contains information about nodes.
APIs: Just like any other API, the Ansible APIs are used for commuting various Cloud services, public or private services.
Ansible Master /Engine Server: The machine/system on which ansible is installed and runs playbooks.
Cloud: It is a network of remote servers hosted on the Internet.
Module: A module is basically a set of instructions that can be executes you can consider it as functions also.
Node: The system which has python installed and which we want to control from Ansible master.
Networking: Ansible can also be used to automate different networks and services.
CMDB: It is a database that acts as a storehouse for various IT installations. It contains the state of servers and hosts.
Plugins augment Ansible’s core functionality. While modules execute on the target system in separate processes (usually that means on a remote system), plugins execute on the control node within the
/usr/bin/ansible process. Plugins offer options and extensions for the core features of Ansible – transforming data, logging output, connecting to inventory, and more. Ansible ships with a number of handy plugins, and you can easily write your own. For example, you can write an inventory plugin to connect to any datasource that returns JSON. Plugins must be written in Python.
This was all about Ansible Architecture, In the next tutorial we will be starting with hands on. Do comment out if you have any queries.