es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ansible Generar informe CSV a partir de múltiples Datos

Espero que todos estén bien.

Estoy teniendo dificultades para generar un archivo CSV a partir de varios hechos correspondientes a los mismos hosts.

Más específicamente, tengo los siguientes hechos:

   ntp_status:
    host01: El reloj está sincronizado
    host02: El reloj está sincronizado
    host03: El reloj no está sincronizado

   ping_status:
    host01: Ping exitoso
    host02: Ping no exitoso
    host03: Ping exitoso

La idea es tener un informe en un archivo CSV llamado report.csv, por lo tanto, esperaría generar algo similar a lo siguiente con Jinja:

   host, ntp_status, ping_status
   host01, El reloj está sincronizado, Ping exitoso
   host02, El reloj está sincronizado, Ping no exitoso
   host03, El reloj no está sincronizado, Ping exitoso

Espero que puedan ayudarme con esto. Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en Ansible y Jinja2, puedo sugerir la siguiente solución para generar un archivo CSV a partir de varios hechos correspondientes a los mismos hosts:

    1. Crea una nueva tarea en tu archivo de playbook de Ansible para generar el archivo CSV usando una plantilla de Jinja2.
    2. Crea un archivo de plantilla de Jinja2 llamado “report.csv.j2” con el siguiente contenido:

       host, ntp_status, ping_status
       {% for host in ntp_status %}
       {{host}}, {{ntp_status[host]}}, {{ping_status[host]}}
       {% endfor %}
    
    1. Ejecuta tu archivo de playbook de Ansible con la nueva tarea para generar el archivo CSV.

    Este enfoque asume que los hechos “ntp_status” y “ping_status” tienen los mismos hosts, en el mismo orden. Si eso no es cierto, puedes modificar la plantilla de Jinja2 para manejar esa situación.

    Espero que esto te ayude a resolver tu problema. Avísame si tienes alguna pregunta o necesitas más ayuda.

Comments are closed.