2016-05-06 14 views
2

ich dies in einem ansible Textbuch haben:ansible deprecation Warnung für nicht definierte Variable trotz "wenn" -Klausel

- name: install custom packages for the host if there are any 
    apt: pkg={{ item }} state=latest 
    with_items: "{{ extra_packages }}" 
    when: extra_packages is defined 

Laufen führt es darin:

[deprecation WARNUNG]: Aufgabe Skipping aufgrund undefined Fehler, in Zukunft wird dies ein fataler Fehler sein .: 'extra_packages' ist nicht definiert.

Aber ich überprüfe, ob die Variable in der when-Klausel definiert ist. Wie behebe ich das, damit es keinen fatalen Fehler gibt, wenn ansible aktualisiert wird?

Antwort

2

Die Lösung war zunächst nicht offensichtlich und es fühlt sich an wie eine Widersprüchlichkeit in Ansible.

- name: install custom packages for the host if there are any 
    apt: pkg={{ item }} state=latest 
    with_items: "{{ extra_packages | default([]) }}" 

Im Grunde funktioniert die Verwendung von "wenn" mit einer Schleife nicht wirklich für diesen Anwendungsfall.

Es here dokumentiert ist:

Wenn Sie die ganze Aufgabe auf der Schleife variiert in Abhängigkeit überspringen definiert ist, verwendet, um die | Standardfilter ein leeres Iterator

jedoch zu schaffen, das Stück der Dokumentation ist nicht Google-fähig für die jeweilige Fehlermeldung. Dies ist jetzt nur ein Problem, da das Verhalten, auf das man sich vorher (unwissentlich) verlassen hat, veraltet ist.

Verwandte Themen