¿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?

Ryan
fuente

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
Dawud
fuente
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.

Lorin Hochstein
fuente
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
Ravindranath Akila
fuente