¿Qué es un module en Ansible?

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

Un módulo o Module en Ansible, también conocido como task pluggins o library plugglins, se refiere a la librería de acciones disponibles en el software, que pueden ser usadas desde una línea de comandos o un play de playbook. El usuario tiene la posibilidad de recurrir a un solo módulo por tarea o bien apelar a varios módulos diferentes en un playbook.

Usualmente, su ejecución se lleva a cabo en el nodo administrador remoto y recopila los valores que se devuelven de este proceso. Además, a partir de la versión de Ansible 2.10, casi todos los módulos se encuentran almacenados en colecciones que pueden ser consultadas a través del Collection Index.

Características de un module en Ansible

Las características más importantes de un module en Ansible se encuentran documentadas en el module documentation del software, donde se asegura que este elemento admite la toma de argumentos. Si el usuario quiere acceder a la documentación de cada módulo, lo puede hacer desde la línea de comandos, utilizando la herramienta ansible-doc, a través del comando ansible-doc yum.

Además de esto, la mayoría de los module en Ansible utilizan los argumentos key=value, que se delimita por espacios. Sin embargo, existen algunos modules en Ansible que no aceptan argumentos, y en el caso de los módulos de comando o de shell, solamente toman la cadena del comando que el usuario quiere ejecutar.

Un module en Ansible también se encarga de devolver datos en el formato ligero de intercambio de datos JavaScript Object Notation (JSON), lo que implica que lo módulos pueden ser escritos en cualquiera de los lenguajes de programación que existen.

Esta herramienta se caracteriza también por ser identificados y evitar realizar algún tipo de modificación cuando se detecte que existe una coincidencia entre el estado actual y el estado final deseado del proceso.

Además, un module en Ansible contiene tres archivos principales: el fichero de inventario, el archivo Ansible.cfg y el fichero principal. El fichero de inventario incluye la lista de nodos que deben ser gestionados. Mientras tanto, el archivo Ansible.cfg contiene las opciones para el escalado de privilegios y la ubicación del archivo de inventario. Finalmente, el fichero principal se refiere a un playbook de Ansible que establece los módulos que se encargarán de llevar a cabo diversas tareas en un host que forme parte de un inventario de archivo de host.

Usos de un module en 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

Cada módulo o unidad de código ejecutado por Ansible tiene un uso particular, como por ejemplo, administrar usuarios en un tipo específico de database o administrar interfaces VLAN en un tipo específico de dispositivo de red. Los module en Ansible se usan principalmente con el objetivo de realizar cambios del sistema y labores de un mayor nivel de dificultad sin que se tengan que establecer todos los parámetros, como yum, get-url, apt, service o copy.

Tipos de module en Ansible

El usuario puede puede obtener un listado de todos los módulos disponibles en el sistema mediante los collection-docs o ejecutando el comando ansible-doc -l en un símbolo del sistema. Algunos de estos son:

  • Módulo APT: se encarga de administrar paquetes apt, como para los entornos de los sistemas operativos Debian y Ubuntu. Para este módulo, es necesario que el host cumpla con los requisitos de python-apt (python 2), python3-apt (phyton 3) y una aptitude antes de 2.4.
  • Módulo de grupo: es el encargado de administrar la presencia de un grupo en un host y requiere de la ejecución de los parámetros groupadd, groupdel y groupmod. Respecto a su estatus, se garantiza que este módulo tiene cambios de interfaz que serán compatibles con versiones anteriores.
  • Módulo Stat: tiene como objetivo la recuperación de archivos similares al comando "stat» en Linux o Unix. Para el público de Windows, debe ser reemplazado por el módulo win_stat.
  • Módulo de Shell: se encarga de tomar el nombre del comando seguido de un listado de argumentos delimitados por espacios. Dentro de sus requerimientos se encuentra un comando libre o un parámetro cmd. Es similar al módulo de comando, pero lo ejecuta a través de un shell (/bin/sh) en el nodo remoto. Para usuarios de Windows, se debe usar el módulo win_shell.
  • Module file: establece y elimina atributos de archivos, enlaces simbólicos o directorios. Otros módulos también admiten las opciones de este módulo como, por ejemplo, la copia, la plantilla y el ensamblaje. Se reemplaza con el win_file en usuarios de Windows.
  • Módulo virt: administra las máquinas virtuales que sean compatibles con el software libvirt. Requiere de phyton mayor o igual a 2.6 y del paquete libvirt-python.
  • Módulo vultr_user: permite crear, actualizar y eliminar usuarios en el servidor de Vultr.
  • Módulo Service: permite iniciar, detener y volver a cargar los paquetes que se encuentren instalados en el sistema.
  • Módulo Copy: se encarga de copiar un archivo desde el equipo hacia una ubicación en la máquina remota.

¿Cuál es el siguiente paso?

Ahora que ya conoces qué es un module en Ansible, cuáles son sus características y usos de mayor importancia y algunos tipos de módulos que existen, no dudes en continuar tu proceso de formación acerca de esta y otras herramientas de la Ansible Automation Platform, 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 estos temas. Además, podrás formarte en metodologías que te permitirá mejorar y acelerar tus procesos de desarrollo tecnológico, obteniendo una ventaja frente a tus competidores del sector IT.

[email protected]