Ansible - Concepts
- Powerful automation tool.
- Allows you to manage a large number of hosts in parallel.
- Manage configurations with templates.
- Install packages, start/stop services, and do just about anything else you could want to do.
- It can make complex, tedious projects simple and easy.
Declarative
Ansible is declarative. This means that you don’t tell Ansible what to do. You describe the desired state that you want and Ansible will make the changes needed to reach that state.
Run from Anywhere
Ansible can be run from almost anywhere. It can be run from a centralized server
- Control node
- Just the machine that you run Ansible commands on.
- Could be a centralized server or just a laptop.
- Ansible SW is installed here ( simple package ) and doesn’t need to run as a server. Just provides a simple CLI.
Agentless
- Managed node
- Just the hosts that you connect to and manage using Ansible.
- No agent needed.
- Just needs SSH connectivity and python to run modules.
The control node uses Ansible to connect to the managed node using SSH and runs modules using Python.
Python Based
Ansible is Python based and is expecially preferred if you already use Python.
Text Based
Playbooks and other files are all text based and easy to manage with GIT for revision control.
No GUI
No GUI in Ancible itself but there are GUIs that can be used to work with Ansible. These include:
- Tower
- AWX
- Semaphore
- Rundeck
Ansible itself is very simple. Things start to become more complicated once you start looking at the different GUIs and platforms.
Red Hat
Ansible is the foundation of Red Hat’s automation platform but is also still available as open source.