Introduction of Ansible
Ansible is an open source automation and orchestration tool for software provisioning, configuration management, and software deployment. Ansible can easily run and configure Unix-like systems as well as Windows systems to provide infrastructure as code. It contains its own declarative programming language for system configuration and management.
Ansible is popular for its simplicity of installation, ease of use in what concerns the connectivity to clients, its lack of agent for Ansible clients and the multitude of skills. It functions by connecting via SSH to the clients, so it doesn’t need a special agent on the client-side, and by pushing modules to the clients, the modules are then executed locally on the client-side and the output is pushed back to the Ansible server.
Since it uses SSH, it can very easily connect to clients using SSH-Keys, simplifying though the whole process. Client details, like hostnames or IP addresses and SSH ports, are stored in files called inventory files. Once you have created an inventory file and populated it, ansible can use it.
Why use Ansible?
Here are some important pros/benefits of using Ansible
- One of the most significant advantages of Ansible is that it is free to use by everyone.
- It does not need any special system administrator skills to install and use Ansible, and the official documentation is very comprehensive.
- Its modularity regarding plugins, modules, inventories, and playbooks make Ansible the perfect companion to orchestrate large environments.
- Ansible is very lightweight and consistent, and no constraints regarding the operating system or underlying hardware are present.
- It is also very secure due to its agentless capabilities and due to the use of OpenSSH security features.
- Another advantage that encourages the adoption of Ansible is its smooth learning curve determined by the comprehensive documentation and easy to learn structure and configuration.
History of Ansible
Here, are important land marks from the history of ansible:
- In February 2012 the Ansible project began.
- It was first developed by Michael DeHaan, the creator of Cobbler and Func, Fedora Unified Network Controller.
- Initially called AnsibleWorks Inc, the company funding the ansible tool was acquired in 2015 by RedHat and later on, along with RedHat, moved under the umbrella of IBM.
- In the present, Ansible comes included in distributions like Fedora Linux, RHEL, Centos and Oracle Linux.
Important terms used in Ansible
Ansible server:
The machine where Ansible is installed and from which all tasks and playbooks will be ran
Module:
Basically, a module is a command or set of similar Ansible commands meant to be executed on the client-side
Task:
A task is a section that consists of a single procedure to be completed
Role:
A way of organizing 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. Defined in later examples as hosts file
Play:
Execution of a playbook
Handler:
Task which is called only if a notifier is present
Notifier:
Section attributed to a task which calls a handler if the output is changed
Tag:
Name set to a task which can be used later on to issue just that specific task or group of tasks
Comments
Post a Comment