Tarefas possíveis devem ser idempotentes . Por exemplo. se a tarefa não modificar nada, ela deve retornar em ok
vez de changed
. A maioria dos módulos e tarefas integrados já são, mas para tarefas como command
e shell
você precisa ajudar um pouco.
Para uma tarefa que verifica puramente 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 integridade, essas tarefas geralmente são combinadas com outra que faz 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