Rückgabecode in ansible-Bedingung auswerten

9

Ich arbeite an der Automatisierung einer Aufgabe, die die neueste Version der Software an eine Datei anhängen muss. Ich will es nicht mehrmals für die gleiche Version machen.

Es sieht die folgende Beispieldatei an:

%Vor%

Die Standardwerte main.yml würden etwas wie

übergeben %Vor%

Code

%Vor%

Problem: Die Debug-Nachricht bewertet current_version.rc und zeigt mir boolesche Werte basierend auf der Ausgabe von grep-Befehlen, aber ich kann diese nicht in der when -Konditionalität verwenden, um zu bestimmen, ob die Aufgabe ausgeführt werden soll.

Bearbeiten: die Ausgabe:

%Vor%     
Bryan 17.12.2015, 17:19
quelle

1 Antwort

21

Wie nikobelia in den Kommentaren darauf hingewiesen wurde, grep gibt einen Exit-Code von 1 zurück, wenn es zu keiner Zeile passt . Ansible interpretiert dies (eigentlich jeden anderen Statuscode als 0 von einer Shell- / Befehls-Task) als Fehler und schlägt so schnell fehl.

Sie können Ansible den Antwortcode von der Shell- / Befehlsaufgabe ignorieren, indem Sie % co_de verwenden % Mit ignore_errors ignoriert dies zwar tatsächliche Fehler (gegeben durch einen Rückgabecode von 2), aber stattdessen sollten Sie grep gefällt das:

%Vor%     
ydaetskcoR 17.12.2015, 22:44
quelle

Tags und Links