¿Qué son los Roles de Ansible y para qué sirven?

Autor: | Última modificación: 22 de marzo de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post:

Los roles de Ansible son una herramienta que se encarga de la gestión de la configuración de un grupo de tareas de administración en los diferentes servidores web y que son fácilmente asignable a los grupos de hosts. Además, es el método principal para para dividir un playbook en varios archivos, lo que facilita su reutilización.

Funciona como un equivalente a una librería, debido a que se trata de una serie de tareas comunes en un rol, que después puede ser reutilizado por muchos otros playbooks.

Características de los roles de Ansible

Los roles se caracterizan por estar limitados a una funcionalidad en específico o un determinado resultado, lo que incluye los pasos necesarios para obtenerlo, ya sea dentro de ese mismo rol o de otros roles llamados dependencias.

Aunque esta herramienta puede ser ejecutada de manera independiente, no existe una forma directa de ponerla en funcionamiento, sino que solo se puede poner en práctica dentro de un Ansible playbook. Además de esto, no cuenta con una configuración detallada para el host en el que se aplicará.

Otra de sus características es que se definen mediante archivos del formato de serialización de datos YAML con una estructura de directorio predefinida.

Los roles de Ansible cuentan con un diseño estructurado de sistemas de archivos y tienen una arquitectura de carpetas, que contiene un archivo de tipo main.yml con el contenido más relevante de cada clasificación y que permite la inclusión de otros archivos diferentes al archivo principal. Algunas de estas carpetas son:

  • Default: contiene las variables que están predeterminadas para el rol, por lo que son más fáciles de anular y tienen un nivel de prioridad bajo. Es representada por el archivo roles/x/defaults/main.yml, donde Ansible cumple la función de agregar variables para que sean reproducidos.
  • Vars: incluyen las variables para los roles de Ansible y tienen una prioridad más alta frente a las variables ubicadas en el directorio predeterminado. Se identifican con el archivo roles/x/vars/main.yml.
  • Tasks: hace referencia a la lista principal de los pasos que serán ejecutados por un rol específico. Incluye el archivo roles/x/tasks/main.yml, donde Ansible puede agregar tareas al play.
  • Files: incluye los archivos que el usuario quiere copiar en el host remoto. Para este directorio, no es necesario que se especifique una ruta de recursos almacenados. Incluye el archivo roles/x/{files,templates,tasks}/.
  • Handlers: se refiere a las tareas que se ejecutarán después de notificarse en otra labor reportando un cambio.
  • Templates: hace referencia a la plantilla de archivos que permite realizar modificaciones en los roles de Ansible.
  • Meta: contiene los metadatos del rol, por ejemplo, el autor, las dependencias y las plataformas de soporte. Cuando existe el archivo roles/x/meta/main.yml, Ansible se encarga de agregar las dependencias a lista de roles.

Usos de los roles de Ansible

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Esta herramienta es utilizada para configurar un gran número de servidores, usando solamente una solicitud de controlador. Además, también ayuda en la automatización de tareas como el cargue de variables, archivos, controladores, tareas y otros elementos de Ansible Automation Platform, así como la implementación de aplicaciones o creación de canales de CI/CD, entre otros. Los roles de Ansible también ofrecen un marco para las colecciones de variables, plantillas o módulos de tipo independiente o interdependiente.

Además, la configuración de esta herramienta facilita que se pueda reutilizar de forma sencilla e incluso, compartirla con la comunidad, por lo que el usuario tiene la posibilidad de aplicar en su infraestructura los roles creados por alguien más.

Los roles de Ansible pueden usarse de tres maneras diferentes:

  • A nivel de playbook: es la forma tradicional de utilizar los roles y se ejecuta a través de la opción roles .
  • A nivel de tasks dinámicamente: permite reutilizar los roles de forma dinámica en cualquier parte de las tareas a través del comando include_role.
  • A nivel de tasks de forma estática: facilita la reutilización de los roles estáticamente en cualquier parte de una labor gracias al comando import_role.

Otro de los comandos que pueden usarse en los roles de Ansible son:

  • -h o –help: muestra el mensaje de ayuda.
  • v o –verbose: es el modo detallado, e incluye:
    • vvv: para ver más.
    • -vvvv: habilita la depuración de conexiones.
  • –version: muestra el número de versión que utilice el programa.

Ansible Galaxy

Ansible Galaxy es el principal repositorio donde se encuentran disponibles los roles de Ansible que el usuario puede colocar directamente en su playbook para mejorar sus procesos de automatización. Además, esta herramienta clasifica un gran número de roles desarrollados por la comunidad de Ansible en las secciones de base de datos, networking, seguridad, sistema web, nube, paquetes de playbook, redes, desarrollo y monitoreo.

¿Cuál es el siguiente paso?

Ahora que ya conoces qué son los roles en Ansible y sus características y usos más importantes, da el siguiente paso y continúa tu proceso de formación acerca de esta y otras herramientas a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en menos de 6 meses podrás aprender todo lo necesario para convertirte en un experto en este y otros elementos de Ansible, lo que te permitirá obtener una ventaja frente a tus competidores del sector tecnológico. Además, podrás formarte en metodologías que te permitirán mejorar y agilizar tus procesos de desarrollo tecnológico.

[email protected]