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?

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 .


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

2
dies sollte die
antwort
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.