Forcer Ansible à éliminer l'erreur lorsque vars est manquant en yml?


8

Est-il possible de forcer Ansible lors du remplacement de la var dans les fichiers yml, qui n'est pas défini, de lever une erreur à la place remplacée silencieusement par une chaîne vide?

Réponses:


9

Oui c'est possible. Consultez la documentation en ligne, sous accès aux données variables complexes .

Un exemple est fourni pour faire exactement cela:

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

Ajoutez cette ligne à la [defaults]section de votre ansible.cfg:

error_on_undefined_vars = True

Vous obtiendrez maintenant un message d'erreur si une variable n'est pas définie.


Je pense que cette option nécessite la version 1.3, qui arrive bientôt mais n'a pas encore été publiée.
mblakele

1

Définissez vos variables dans

roles/<role_name>/defaults/main.yml

comme:

SUPERVAR:
  VAR1:foo
  VAR2:bar

puis faire

roles/<role_name>/tasks/main.yml

comme:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.