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.

¿Puedo combinar condicionales basados en ansible_facts y condiciones basadas en variables registradas?

Aquí hay un ejemplo de código Ansible que estoy intentando hacer:

yaml
– name: Imprimir un mensaje de depuración
ansible.builtin.debug:
msg: "La ruta existe y es un directorio. El paquete XXXX no existe"
when: p.stat.isdir está definido y p.stat.isdir y 'XXXX' no está en ansible_facts.packages

Aquí, las dos primeras condiciones son variables registradas mientras que la tercera se basa en ansible_facts. Sin embargo, al ejecutar el código, parece que la tercera condición no se está comprobando. ¿Estoy haciendo algo mal aquí? ¿Se permite este tipo de combinación?

Mis disculpas por no poder proporcionar ninguna salida. Eso se debe a que no lo estoy ejecutando directamente en un servidor, hay un sistema intermedio que lo ejecuta. Así que no pude encontrar una manera de capturar la salida.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como un experto en Ansible especializado en Ansible y Ansible Facts, el código proporcionado parece ser correcto. La combinación de variables registradas y Ansible Facts está permitida y comúnmente utilizada en playbooks de Ansible.

    Sin la salida ni ninguna otra información, es difícil determinar la causa raíz de por qué no se está comprobando la tercera condición. Sin embargo, se recomienda revisar la sintaxis y asegurarse de que la variable ansible_facts.packages esté definida correctamente y que el valor de XXXX se esté evaluando correctamente.

    También se recomienda verificar que la tarea ansible.builtin.debug se esté ejecutando durante la ejecución y que no haya otras tareas o condiciones que puedan estar impidiendo que se ejecute.

    En resumen, el código parece ser correcto y la combinación de variables registradas y Ansible Facts está permitida. Puede ser necesario realizar más pruebas y verificaciones para determinar la causa del problema.

Comments are closed.