====== Introducción a Ansible ======
Sección perteneciente al [[informatica:ciberseguridad:cursos:curso_ansible_automatizacion_it|curso Ansible Automatización IT]]
Lenguaje de automatización que permite describir de forma sencilla infraestructura IT incluyendo sistemas, BBDD, redes, cloud y aplicaciones mediante Ansible plays / playbooks.
Se apoya en un **motor de automatización** que se encarga de ejecutar playbooks.
Se utiliza para ejecutar procesos automatizados que involucran la ejecución de tareas en muchas máquinas al mismo tiempo.
Existe una versión llamada **Ansible Tower** que proporciona un framework que permite controlar, sercurizar y gestionar las automatizaciones utilizando un interfaz gráfico y una API RESTful.
Alternativas a Ansible:
* Chef
* Puppet
* Salt
Características de Ansible:
* **Simple**: legible e interpretable. No requiere habilidades de programación especiales. Las tareas se ejecutan en orden. Permite ser productivo rápidamente.
* **Potente**: despliegue de aplicaciones, gestión de configuración. Automatización de flujos de trabajo. Orquestación del ciclo de vida de las aplicaciones.
* **Sin agentes**: arquitectura sin agentes. Utiliza OpenSSH (Linux) y WinRM (Windows). Reduce la superficie de ataque y los costes de gestión. Más eficiente y seguro.
Ansible fue creado por el equipo de Red Hat y está escrito en Python
===== Instalando Ansible en VirtualBox =====
Si nuestra máquina es un Linux, no sería necesario el uso de la máquina virtual, solo habría que instalar Ansible.
Podemos usar una imagen VDI de osboxes, por ejemplo de [[https://www.osboxes.org/debian/|Debian]]
Crearíamos la máquina virtual en VirtualBox, de tipo Linux, estableciendo memoria y cuando lleguemos a la sección del disco duro, elegimos el fichero .VDI que descargamos de OSBOXES.
Desde la máquina virtual Debian (o desde una Debian en local), instalamos Ansible siguiendo los [[https://docs.ansible.com/ansible/latest/installation_guide/installation_distros.html#installing-ansible-on-debian|pasos de la guía oficial]]:
En el fichero ''/etc/apt/sources.list'' añadimos:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main
Y ejecutamos los siguientes comandos:
Añadir clave:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
Actualizar repositorios:
apt update
Instalamos Ansible:
apt install ansible
Podemos verificar que Ansible está instalado en la máquina:
ansible --version
===== Instalando Ansible con WSL (Windows) =====
Instalamos WSL (mejor la versión 2) y luego vamos a la Microsoft Store y buscamos Ubuntu para instalar.
La instalación de Ansible la haríamos siguiendo la [[https://docs.ansible.com/ansible/latest/installation_guide/installation_distros.html#installing-ansible-on-ubuntu|documentación oficial para Ubuntu]].
===== Comandos fundamentales en Ansible =====
Trabajaremos sobre todo con 2:
* ''ansible''
* ''ansible-playbook'': cuando hayamos desarrollado los ficheros ''playbook'', este comando nos permitirá interactuar con ellos.
===== Arquitectura de Ansible =====
Componentes:
* Usuarios
* Plays / Playbooks:
* Automation Engine
* Inventory
* API
* Modules
* Plugins
* CMDB: bases de datos de conocimiento
* Public / Private cloud
* Managed assets: todo lo que estamos queriendo automatizar (servidores, etc)