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 remotopull: recupera un secreto remoto al vault localsync: sincroniza todos los secretos locales hacia el host remoto