🔁 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