Difficulty: Principiante-Intermedio
Estimated Time: 25 minutes

¡Bienvenido al curso interactivo para aprender a crear y utilizar las distintas funcionalidades de los roles de Ansible!

Si estás aquí, es muy probable que ya sepas un poco de Ansible y cómo crear un Playbook o un Rol muy simple... Si no es así, ¡te recomiendo ver nuestro otro curso interactivo que sirve como introducción al fabuloso mundo de Ansible! Lo tienes aquí.

¿Qué aprenderé en este curso?

Pues bien, vas a aprender cómo funcionan los distintos directorios de un Rol de Ansible.

Ser organizado a la hora de crear un rol es muy importante, ya que nos permitirá en un futuro exportarlo a otro proyecto sin que pierda su funcionalidad y sin tener que dar muchas vueltas por los distintos ficheros para ir editando uno a uno los campos que necesitemos adaptar para el nuevo entorno.

No es necesario utilizar todos los directorios para esto, por lo que este curso se centrará en enseñar cuáles son los más utilizados, de manera que en poco tiempo conozcas las prioridades y cómo utilizarlos correctamente.

En este curso aprenderemos a utilizar los siguientes directorios:

  • Directorio 'defaults'
  • Directorio 'tasks'
  • Directorio 'templates'
  • Directorio 'vars'

Si consideras que ya estás preparado para dar todo de tí... ¡Empecemos el escenario!

DevOps TF - Óscar Díaz Domínguez

¡Has terminado!

Recuerda valorar este curso interactivo y no te olvides que puedes encontrar más en la página de nuestra organización de KataCoda: @devopstf.

No te olvides de compartirlo con tus compañeros de trabajo: ¡a lo mejor ellos también quieren aprender sobre Ansible!

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

Ansible 101 - Los Roles

Step 1 of 6

El directorio 'defaults'

Sabemos qué es un rol y cómo funciona, qué utilidades tiene para nosotros y cómo utilizarlos para nuestro provecho... ¿pero sabemos utilizar sus funciones más potentes? Los roles, además de tareas y ficheros, son capaces de alojar variables propias, así como generar ficheros en base a variables que podrían cambiar de una a otra ejecución.

Nuestro rol de pruebas se encargará de crear una tarjeta identificativa para una mascota en formato .txt, que cambiará según cómo ejecutemos nuestro playbook (o cual ejecutemos). Para simplificar el ejemplo, vamos a hacer una separación entre mascotas que son mamíferos (perros y gatos) y mascotas que son ovíparos (ninfas, canarios, etc...).

Tendremos que mostrar su nombre, su género, su tipo de reproducción y el tipo de alimento que necesitan (pienso en el caso de los mamíferos, semillas en el caso de los ovíparos), así como el año de su nacimiento.

Al final generaremos las tarjetas bajo un directorio con el nombre de la mascota, que estará bajo un directorio que definirá si es mamífero o ovíparo y podremos crear todas las que queramos.

Con el ejemplo claro... vamos a ir viendo uno a uno cómo funcionan y para qué podemos aprovechar los directorios de los roles de Ansible, en orden de aparición.

¿Cuál es su utilidad?

Este directorio se encarga de albergar variables por defecto, por si acaso alguna de ellas no la definamos, tengan un valor que permita al Rol ejecutarse sin mayor problema.

Generalmente en él vamos a definir una variable cuyo valor no es extremadamente importante, o que sabemos que va a cambiar con bastante frecuencia.

En nuestro caso, estas variables serán el nombre, el género y el año de nacimiento, que son datos bastante propensos a cambiar.

Creando nuestro main.yml

Con esto claro, vamos a crear nuestras variables por defecto.

Primero que nada, vamos a ubicarnos en el directorio de Ansible: cd ansible

Y ahora vamos a crear el fichero main.yml dentro de 'defaults': touch roles/katacoder/defaults/main.yml

Dentro, colocaremos las siguientes líneas de código:

---
nombre: Toby
genero: M
nacimiento: 20/11/2017
tipo: indefinido
comida: indefinido

Con esto listo, no necesitamos nada más de esta carpeta.

Pasemos al siguiente directorio...