====== 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)