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.

Variable de grupo de Ansible no definida en el play.

He implementado un inventario dinámico para Ansible, durante su ejecución define una variable de grupo que uso después en un playbook.

En el playbook, lo uso dos veces:
– para hacer un bucle sobre sus contenidos:
yaml
tasks:
- include_tasks: include/restart.yaml
loop: "{{ host_set | default(['all']) }}"
loop_control:
loop_var: h

– y como medio para establecer una condición serial de forma condicional
yaml
serial: "{{ host_set | default(false) | ternary('100%', '5') }}"

El comportamiento que obtengo y que no puedo explicar es que la variable host_set se define y se rellena correctamente durante la ejecución de la tarea, pero cuando intento establecer serial parece que no está definida.

¿Es este comportamiento esperado, están las variables de grupo de Ansible indefinidas al establecer los atributos de un juego, pero aparecen más tarde durante la ejecución de la tarea para ese juego en particular?

Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Ansible, no se espera que las variables de grupo de Ansible estén indefinidas al establecer los atributos de un juego pero aparezcan más tarde durante la ejecución de la tarea para ese juego en particular.

    Parece que puede haber un problema con el orden en que se definen y utilizan las variables dentro del playbook. Es posible que la variable host_set deba definirse más temprano en el playbook o en una sección separada de vars para asegurarse de que esté accesible al establecer el atributo serial.

    Además, puede ser útil verificar el alcance de la variable host_set para asegurarse de que no se esté sobrescribiendo o perdiendo durante la ejecución del playbook.

    En general, puede ser necesario realizar una investigación y una depuración más detallada para determinar la causa raíz del problema.

Comments are closed.