Ansible zwingen, Fehler auszulösen, wenn vars in yml fehlt?

8

Ist es möglich, Ansible beim Ersetzen der var in undefinierten yml-Dateien zu erzwingen, einen Fehler auszugeben und stattdessen stillschweigend durch eine leere Zeichenfolge zu ersetzen?

Ryan
quelle

Antworten:

9

Ja, es ist möglich. Überprüfen Sie die Online-Dokumentation unter Zugriff auf komplexe variable Daten .

Um genau das zu tun, wird ein Beispiel bereitgestellt:

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
quelle
8

Fügen Sie diese Zeile dem [defaults]Abschnitt Ihrer ansible.cfg hinzu:

error_on_undefined_vars = True

Sie erhalten jetzt eine Fehlermeldung, wenn eine Variable undefiniert ist.

Lorin Hochstein
quelle
Ich glaube, diese Option erfordert 1.3, was bald kommt, aber noch nicht veröffentlicht wurde.
Mblakele
1

Definieren Sie Ihre Variablen in

roles/<role_name>/defaults/main.yml

mögen:

SUPERVAR:
  VAR1:foo
  VAR2:bar

und dann rein

roles/<role_name>/tasks/main.yml

mögen:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
Ravindranath Akila
quelle