What is Ansible
Ansible: Ansible an open-source IT configuration Management, Deployment and Orchestration Tool. They provide large productivity gains with a wide Variety of Automation Challenges.
Ansible History:
Michael Dehaan has developed an Ansible and the project was began in February 2012.
Redhat acquired the ansible tool in 2015.
Ansible is available for RHEL, Debian, Centos, Oracle, Linux.
Advantages:
Ansible is free to use by everyone.
It is very consistent, lightweight, constraints regarding the OS or underlying hardware are present.
It is very secure due to its agentless capabilities and open SSH security features.
Ansible does not need any special system administrator skill to install and use it.
Push Mechanism.
Disadvantages:
Insufficient user interface though ansible tower is GUI, it is still in development stages.
Cannot achieve full automation by ansible.
New to file market, therefore, limited support and document is available
Terms used in Ansible:
Ansible server: The machine where Ansible is installed and from which all task and playbook will be run.
Module: It is a set of similar command mean to be executed for the client-side.
Task: It is a section that consists of a single procedure to be completed.
Role: A way of organising tasks and related files to be later called in a playbook.
Fact: Information fetched from the client system from the global variables with the gather-facts operation.
Inventory: File containing data about the ansible client servers.
Play: Execution of a playbook.
Handler: It is called only if a notifier is present.
Notifier: It is a Section attributed to a task which calls a handler if the output is changed.
Playbooks: It consists of code in YAML format, which describes tasks to be executed.
Host: Nodes, which are automated by Ansible.
Ansible Modules:
The ships with a number of modules that will be executed directly on remote hosts or through the playbook.
The module of library will be reside on any machine, and there are not server daemons, or databases required.
Ansible Playbook:
Playbook in ansible are written in YAML format.
It is human readable data serialization language. It is commonly used for configuration files.
Playbook is like a file where you write codes consist of vars, tasks, handlers, files, templates and roles.
Each playbook is composed of one or more ‘modules’ in a list Module is a colllection of configuration files.
Playbook are dvided into many section like-
Target Section: Define the host against which playbook task has to be executed.
Variable Section:Define variables.
Task Section:List of all modules that we need to run in an order.