Ansible es una plataforma de automatización IT, desarrollada por Red Hat, que facilita a los administradores de sistema y DevOps el despliegue de aplicaciones, el aprovisionamiento de recursos y muchas otras tareas de una manera rápida y sencilla. Utilizada por muchas empresas como Spotify o la NASA, esta herramienta open source sigue creciendo a un ritmo vertiginoso como respuesta a una elevada demanda de métodos ágiles que nos hagan perder el menor tiempo posible a la hora de desplegar, configurar y actualizar máquinas virtuales o físicas, automatizando el mayor número de tareas idénticas en muchos grupos de servidores.
Entre sus características más importantes señalamos un overhead muy bajo, la posibilidad de emplear comandos básicos, el uso del lenguaje YAML para la configuración de tareas complejas y describir configuraciones reusables de los sistemas, y un método de autenticación por ssh, preferiblemente con claves. Además, no es necesario un usuario root, destacando por una arquitectura sin agentes, diferenciándose de esta manera de otras soluciones como Chef o Puppet.
Así, para los responsables IT la principal ventaja competitiva de Ansible, como infraestructura, respecto a otras herramientas de la competencia, es, por un lado, que no se necesita un servidor maestro o agentes instalados en los nodos a gestionar, y por otro lado, que se basa en una estación con el mapa de servidores gestionados, conectados a través de credenciales SSH. En este sentido, si lo que necesitamos es una herramienta sencilla, orientada a orquestación, que no requiera de una monitorización continua, ni de un volumen elevado de máquinas sin agentes, Ansible es nuestro mejor aliado. Por ello, cada vez son más las empresas que apuestan por esta infraestructura IT.
En Ansible podemos encontrar dos tipos de servidores: el controlador o la máquina desde la que lanzamos la orquestación, y el nodo, que es manejado por el controlador a través del método de autentificación SSH.
Los componentes principales de Ansible, a la hora de realizar el despliegue de aplicaciones, la orquestación multi-nivel y la gestión de la configuración, son los siguientes:
- Módulos, que actúan como unidades de trabajo en Ansible, controlando servicios, ficheros, paquetes o comandos. Cada uno de ellos es autosuficiente y pueden ser escritos en lenguajes de scripting como Python, Perl o Bash, entre otros. Además, su principal característica es la idempotencia, por lo que una vez el sistema alcanza el estado deseado, no se realiza ninguna operación más.
- Playbooks, que es el fichero de Ansible, escrito en YAML, encargado de definir todas las tareas a realizar sobre un conjunto de hosts. Nos ofrece la posibilidad de gestionar la configuración del despliegue a realizar en los nodos, incluso la orquestación de una serie de tareas a seguir.
- Inventory, que es el fichero donde definimos el host o grupos de hosts, así como sus posibles variables: el puerto ssh donde hay que conectarse, por ejemplo.
- Roles, que son conjuntos de ficheros y tareas parecidos sobre un determinado grupo de hosts. Algunos de los roles más habituales son el webserver, el nginx o el dbserver.
- Files, que es el directorio donde se almacenan los ficheros que queremos copiar en los hosts que pertenecen a un determinado rol.
- Tasks, que es el fichero del directorio donde definimos las tareas que queremos ejecutar en los hosts que pertenecen a ese determinado rol. El objetivo de cada tarea es ejecutar un módulo, y debe contar con un “name” que será incluido a la hora de programar la operación.
FORMACIÓN ANSIBLE
En Formadores IT ofrecemos una formación en Ansible, totalmente personalizada y adaptable a las necesidades de cada empresa. Se trata de una formación dirigida a nuevos perfiles de administración DevOps y se requieren conocimientos previos de sistemas operativos Linux, del proveedor Red Hat. Además, contamos con un curso OpenShift OKD, orientado para profesionales de empresa que deseen actualizarse y aprender todas las novedades en torno a esta fantástica herramienta.
Soluciones Formativas Ofertadas: