Ich habe die folgenden Aufgaben in einem Playbook, das ich schreibe (die Ergebnisse sind neben der Debug-Anweisung in & lt; & gt; aufgeführt):
%Vor%Und ich führe es mit dem folgenden Befehl:
%Vor%Der erste Include-Lauf, aber der zweite Sprung mit dieser Ausgabe:
%Vor% Ich habe den Eindruck, dass die bedingte Prüfung für alle von ihnen durchgeführt werden sollte, da force_install == true
zu true
auswertet, was die gesamte when
zu true machen sollte (da es sich um eine Reihe von ORs handelt) / p>
Wie erhalte ich das Wann, wenn die Variablen richtig eingestellt sind?
Bearbeiten:
Ändern der Sekunde, wenn für die Install NRPE
die folgenden Funktionen verwendet werden, erklärt jedoch nicht, warum die andere, Run the prep
, entsprechend ausgeführt wird:
Arbeiten:
%Vor%funktioniert auch:
%Vor%funktioniert nicht:
%Vor%Die abgeschnittene (Duplikate entfernt) Ausgabe dieses bestimmten Abschnitts des Spiels ist:
%Vor%Sie müssen die Variable in einen booleschen Wert konvertieren:
%Vor%Ich behaupte nicht, ich verstehe die Logik dahinter. In Python sollte jede nicht leere Zeichenfolge truthy sein. Wenn es jedoch direkt in einer Bedingung verwendet wird, wird es als falsch ausgewertet.
Der bool-Filter interpretiert dann wieder die Strings "true" und "yes" (case-insensitive) als wahr. Jede andere Zeichenfolge ist falsch.
Sie können auch einen Standardwert festlegen, falls force_install
nicht definiert ist, da dies zu einem Fehler undefinierter Variable führen würde:
Tags und Links ansible ansible-playbook