Módulos

Listado completo de módulos disponibles en ShFlow, con documentación técnica, ejemplos y plantillas. Incluye módulos de red, sistema, cifrado y usuarios.


Lista de módulos del core de ShFlow:

api

El módulo api permite realizar peticiones HTTP declarativas desde un host remoto, compatible con APIs REST (GET, POST, PUT, DELETE) y servicios SOAP (POST con cuerpo XML). Es útil para consultar servicios, enviar datos, validar integraciones o automatizar flujos externos.

archive

El módulo archive permite comprimir, descomprimir y extraer archivos en remoto utilizando formatos estándar como tar, zip, gzip y bzip2. Es útil para empaquetar logs, desplegar recursos, realizar backups o extraer ficheros específicos desde archivos existentes.

blockinfile

copy

cron

docker

El módulo docker permite gestionar contenedores Docker desde un host remoto vía SSH. Soporta acciones como lanzar, detener, eliminar, construir imágenes y ejecutar comandos dentro de contenedores.

download

El módulo download permite descargar ficheros remotos de forma reproducible, con soporte para reanudación automática (--continue) y configuración de proxy. Es útil para obtener binarios, configuraciones o recursos externos durante despliegues. Detecta automáticamente si usar wget o curl, y puede ejecutarse con privilegios (sudo) si se requiere.

echo

facts

El módulo facts permite extraer información del sistema remoto de forma estructurada y trazable. Recoge datos como hostname, CPU, RAM, sistema operativo, interfaces de red y particiones, con múltiples formatos de salida. Es ideal para auditorías, generación de informes, validación de entornos y recopilación de inventario técnico.

file

file_read

El módulo file_read permite leer el contenido de un archivo en el host remoto usando SSH. Es útil para inspeccionar configuraciones, logs o archivos de sistema.
Puede aplicar un filtro grep para mostrar solo las líneas que cumplan un patrón, y usar sudo si se requiere.

fs

git

groups

El módulo groups permite gestionar grupos locales del sistema: crear, modificar o eliminar grupos de forma declarativa y reproducible. Es útil para preparar entornos de servicio, asignar permisos compartidos o mantener consistencia en configuraciones multiusuario.

lineinfile

lookup

loop

El módulo loop permite ejecutar otro módulo de ShFlow sobre una lista de valores, pares clave:valor o combinaciones con una segunda lista (secondary).
Es útil para aplicar tareas repetitivas como validaciones, despliegues, pruebas o transformaciones sobre múltiples entradas.
Soporta interpolación dinámica ({{item}}, {{item_key}}, {{item_value}}, {{secondary_item}}) y puede abortar en el primer fallo si se configura fail_fast=true.

openssl

El módulo openssl permite gestionar certificados y claves en hosts remotos usando OpenSSL. Puede convertir entre formatos (.pfx, .pem, .cer, .key), inspeccionar certificados, e instalar CA confiables en el sistema. Es útil para automatizar despliegues seguros, validar fechas de expiración, y preparar entornos con certificados personalizados. Requiere sudo para instalar certificados como CA.

package

ping

El módulo ping permite verificar la conectividad desde un host remoto hacia un destino específico (IP o dominio). Es útil para validar accesibilidad de servicios, comprobar rutas de red o realizar diagnósticos básicos. La ejecución se realiza vía SSH y puede usar sudo si se requiere.

replace

run

service

smpt_send

Envía un correo de prueba utilizando conexión SMTP directa mediante netcat (si está disponible) o openssl s_client como alternativa. Este módulo permite validar conectividad SMTP y enviar resultados de automatización desde entornos sin privilegios de root ni software adicional.

template

users

El módulo users permite gestionar usuarios locales del sistema: crear, modificar o eliminar cuentas de forma declarativa y reproducible. Es útil para preparar entornos de servicio, configurar accesos, o mantener consistencia en despliegues multiusuario. Puede ejecutarse con privilegios (sudo) si se requiere.

vault-remote

El módulo vault-remote permite sincronizar secretos cifrados entre el vault local (core/vault) y un host remoto. Es útil para compartir credenciales, tokens o configuraciones sensibles entre nodos de forma segura, usando scp y ssh.

Soporta tres acciones principales:

  • push: envía un secreto local al host remoto
  • pull: recupera un secreto remoto al vault local
  • sync: sincroniza todos los secretos locales hacia el host remoto

wait


Ejemplo de plantilla de documentación