¿Forzar a Ansible a arrojar un error cuando falta vars en yml?


8

¿Es posible forzar Ansible al reemplazar la var en archivos yml, que no está definido, arrojar un error en lugar de reemplazarlo silenciosamente por una cadena vacía?

Respuestas:


9

Sí, es posible. Consulte la documentación en línea, bajo el acceso a datos variables complejos .

Se proporciona un ejemplo para hacer exactamente eso:

tasks:
    - shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
      when: foo is defined

    - fail: msg="Bailing out: this play requires 'bar'"
      when: bar is not defined

8

Agregue esta línea a la [defaults]sección de su ansible.cfg:

error_on_undefined_vars = True

Ahora recibirá un mensaje de error si una variable no está definida.


Creo que esa opción requiere 1.3, que llegará pronto pero aún no se ha lanzado.
mblakele

1

Define tus variables en

roles/<role_name>/defaults/main.yml

me gusta:

SUPERVAR:
  VAR1:foo
  VAR2:bar

y luego hacer en

roles/<role_name>/tasks/main.yml

me gusta:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.