As tarefas possíveis devem ser idempotent . Por exemplo. se a tarefa não modificar nada, deve retornar ok
em vez de changed
. A maioria dos módulos e tarefas incorporadas já existem, mas para tarefas como command
e shell
você precisa ajudar um pouco.
Para uma tarefa que faz uma verificação pura e não modifica nada, você deve adicionar:
changed_when: False
always_run: yes
O último permite que a tarefa seja executada mesmo no modo de verificação .
Por uma questão de completude, essas tarefas geralmente são combinadas com outras que fazem a modificação real, por exemplo:
- 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