Qual è il significato di un'attività Ansible che segnala che qualcosa è cambiato?


20

Ho un compito che controlla se il mio processo è in ascolto sulla porta 8080 e solo quando il codice di uscita non è zero, eseguirò failun messaggio.

Quando il servizio è in esecuzione, segnala che lo stato è cambiato. Voglio che lo dica ok. Cosa significa changedeffettivamente uno stato in Ansible?

Risposte:


11

Tutto ciò che dipende da qualcosa sulla destinazione otterrà lo stato "modificato" quando eseguito, anche se è solo un comando di shell a fare eco a qualcosa.

Per sopprimere lo stato "modificato", è possibile aggiungere la seguente riga all'attività:

changed_when: false

Questa e altre cose rilevanti sono elencate in questa pagina doc ansible .


27

Le attività rispondenti dovrebbero essere idempotenti . Per esempio. se l'attività non modifica nulla, dovrebbe restituire okinvece di changed. La maggior parte dei moduli e delle attività incorporate lo sono già, ma per attività come commande shelldevi aiutare a rispondere un po '.

Per un'attività che controlla puramente e non modifica nulla, è necessario aggiungere:

changed_when: False
always_run: yes

Quest'ultimo consente di eseguire l'attività anche in modalità di controllo .

Per completezza, tali compiti sono generalmente combinati con un altro che esegue la modifica effettiva, ad esempio:

- 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
questo dovrebbe avere una risposta verificata
mastier, il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.