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

20

Ich habe eine Aufgabe, die prüft, ob mein Prozess Port 8080 abhört, und erst wenn der Beendigungscode nicht Null ist, würde ich failmit einer Meldung ausgeführt.

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

Socgen Hacker
quelle

Antworten:

11

Alles, was von etwas auf dem Ziel abhängig ist, erhält bei der Ausführung den Status "geändert", auch wenn es sich nur um einen Shell-Befehl handelt, der etwas zurückgibt.

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

changed_when: false

Dieses und andere relevante Dinge sind auf dieser anzeigbaren Dokumentseite aufgelistet .

wurtel
quelle
27

Ansible Aufgaben sollten idempotent sein . Z.B. Wenn die Aufgabe nichts ändert, sollte sie okanstelle von zurückkehren changed. Die meisten eingebauten Module und Aufgaben gibt es bereits, aber für Aufgaben wie commandund shellmusst du ansible ein bisschen helfen.

Für eine Aufgabe, die nur 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 Überprüfungsmodus .

Der Vollständigkeit halber werden solche Aufgaben üblicherweise 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
user1338062
quelle
2
dies sollte die
antwort