🔁 Módulo: loop
🇪🇸 Descripción
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.
🧩 Argumentos disponibles
| Clave | Descripción |
|---|---|
items |
Lista de valores o pares clave:valor separados por coma |
secondary |
Lista secundaria opcional para combinaciones cruzadas |
module |
Nombre del módulo ShFlow a ejecutar en cada iteración |
fail_fast |
Si se desea abortar en el primer fallo, usar fail_fast=true (por defecto) |
... |
Cualquier argumento adicional será interpolado y pasado al módulo objetivo |
▶️ Ejemplo de uso
tasks:
- name: Verificar conectividad con múltiples IPs
module: loop
args:
items: "192.168.1.1,8.8.8.8"
module: ping
count: 2
timeout: 3
target: "{{item}}"🧠 Trazas esperadas (--debug)
🔁 [loop] → ping con item='192.168.1.1' secondary=''
📡 [ping] Probando conectividad desde equipo1 hacia 192.168.1.1...
✅ [ping] equipo1 puede alcanzar 192.168.1.1
🔁 [loop] → ping con item='8.8.8.8' secondary=''
📡 [ping] Probando conectividad desde equipo1 hacia 8.8.8.8...
❌ [ping] equipo1 no puede alcanzar 8.8.8.8
⚠️ [loop] Falló la iteración con '8.8.8.8'📜 Changelog
Consulta el historial de cambios en changelog/loop.md