Difficulty: Principiante
Estimated Time: 10 minutes

¿Qué es Ansible?

Ansible es una plataforma de software libre que permite configurar y administrar equipos informáticos, o así es como se describe en la Wikipedia. En la práctica, Ansible no sirve única y exclusivamente para eso, sino que también nos permite generar imágenes Docker, subir/descargar artefactos de un repositorio y generar ficheros que variarán según la ejecución gracias a la posibilidad de parametrizar plantillas.

Para un desarrollador esto es muy interesante, y es muy común ver Ansible como motor para lograr la Integración Continua y la Entrega Continua en equipos de desarrollo de Software.

A través de este pequeño curso, se pretende enseñar a quien le interese a utilizar Ansible, de manera totalmente interactiva y guiada, además de proponer ejercicios para realizar en un entorno propio con más de una máquina e incluso de manera remota.

¿Qué aprenderemos en este pequeño escenario?

La idea es tener clara cuál es la base del árbol de directorios típico para un proyecto de Ansible. Saber qué contiene cada carpeta y qué uso tiene dentro de la jerarquía, para así ser capaces de encontrar y solventar errores de manera más ágil, sin perder mucho tiempo en ello.

Crearemos nuestros propios roles y entenderemos cómo funcionan.

Además, podremos reutilizar nuestro entorno para extender la práctica, a través de unas ideas de ejercicios para que practiques.

Más adelante...

Eventualmente, crearé más cursos para hablar de manera más específica de carpetas propias de roles o módulos específicos de Ansible. La idea es que por ahora puedas aprender la base gracias a este pequeño curso, basado en mi experiencia con la herramienta.

Lo bueno es que Ansible tiene una curva de aprendizaje bastante viable y probablemente con este curso y una semana de trabajo + investigación por tu cuenta ya seas todo un maestro, así que...

¡Ánimo y a darle caña!

DevOps TF - Óscar Díaz Domínguez

¡Muchas gracias por participar del curso!

No te olvides de puntuar y compartirlo con alguno de tus compañeros: ¡el saber no ocupa lugar!

Estate atento a mi perfil para más cursos próximamente... :)

Don’t stop now! The next scenario will only take about 10 minutes to complete.

Ansible 101 - Intro

Step 1 of 5

Preparándonos para utilizar Ansible

Para este curso vamos a utilizar una máquina CentOS 7, distribución que suele utilizarse para crear entornos de producción y que cuenta con mucha documentación sobre cómo solucionar todo tipo de problemas.

Como tenemos una máquina limpia, sin mucho más que lo estrictamente necesario para funcionar, vamos a tener que instalarnos nosotros mismos Ansible. El objetivo de hacerlo en esta etapa es darnos cuenta de que Ansible no es única y exclusivamente eso, sino que se sirve de una serie de dependencias que veremos a continuación.

Para instalar Ansible, tendríamos que utilizar nuestro gestor de paquetes con el siguiente comando apt install ansible. en este caso, ya está incluido en el entorno.

¿Qué instalamos junto con Ansible?

Si ejecutemos el comando, veremos cómo resuelve toda la serie de dependencias del paquete, y antes de que escribamos "y" y pulsemos Enter para instalarlo, podremos fijarnos en que Ansible no viene solo.

En efecto, Ansible se sirve de Python para funcionar. Junto a ello necesitará, además, ser capaz de establecer conexiones SSH. Además de la estructura de ficheros, escritos en YAML, Ansible se sirve de Python para crear sus distintos módulos de automatización.

Desde módulos para control de ficheros hasta módulos de instalación de paquetes: todo (más bien CASI todo) funcionando a través de python, sin ejecutarse nativamente en las máquinas donde lo llamamos.

¿Quiere decir, entonces, que en todas las máquinas que queramos automatizar con Ansible vamos a necesitar instalar todo esto?

Lo bueno es que la respuesta aquí es NO.

El maestro de Ansible y sus Esclavos

Ansible funciona con una estructura en la que una máquina hace de maestro o nodo controlador, mientras que todas las demás, generalmente, actúan como esclavas de este maestro.

Lo mejor de todo, es que Ansible SOLO tiene que instalarse en la máquina que hace de controlador.

Para hacer funcionar los esclavos simplemente necesitaremos que esté instalado Python en ellos, ya que como habíamos explicado antes, es la parte que se encarga de la ejecución.

Con esto listo, el maestro se encargará de establecer las conexiones y delegar las distintas tareas a sus nodos para que, a través de un comando muy simple, logremos preparar una serie de máquinas en muy poco tiempo, sin estar conectándonos nosotros directamente y ejecutando código nativamente.

Con esto listo y entendido, ya podemos comenzar con la creación y utilización de Ansible en nuestro pequeño entorno de pruebas.