Welche Bedeutung hat eine Ansible-Aufgabe, die meldet, dass sich etwas geändert hat?

11634
socgen hacker

Ich habe eine Aufgabe, die prüft, ob mein Prozess Port 8080 überwacht. Nur wenn der Exit-Code nicht Null ist, würde ich faileine Meldung ausführen .

Wenn der Dienst ausgeführt wird, meldet er, dass sich der Status geändert hat. Ich möchte es sagen ok. Was bedeutet changedeigentlich ein Status in Ansible?

14

2 Antworten auf die Frage

19
user1338062

Ansible Aufgaben sollten idempotent sein . Z.B. wenn die Aufgabe nicht alles ändern, sollte es zurückgeben okstatt changed. Die meisten integrierten Module und Aufgaben sind bereits vorhanden, aber für Aufgaben wie commandund shellmüssen Sie ein wenig helfen.

Für eine Aufgabe, die rein prüft und nichts ändert, sollten Sie Folgendes hinzufügen:

changed_when: False always_run: yes 

Letzteres ermöglicht die Ausführung der Task auch im Prüfmodus .

Der Vollständigkeit halber werden solche Aufgaben in der Regel mit einer anderen kombiniert, die die eigentliche Änderung vornimmt, z.

- command: check command that returns true when no change needed register: result changed_when: False always_run: yes - command: modify command when: result.rc != 0 
Diese Antwort sollte verifiziert werden mastier vor 6 Jahren 1
9
wurtel

Alles, was von etwas auf dem Ziel abhängig ist, wird bei seiner Ausführung in den Status "geändert", auch wenn es sich nur um einen Shell-Befehl handelt, der etwas bestätigt.

Um den Status "geändert" zu unterdrücken, können Sie der Task die folgende Zeile hinzufügen:

changed_when: false 

Diese und andere relevante Dinge sind auf dieser ansehnlichen Dokumentseite aufgelistet .