Выполняемые задачи должны быть идемпотентными. Например. если задача ничего не изменяет, она должна вернуть ok
вместо changed
. Большинство встроенных модулей и задач уже есть, но для таких задач, как command
и shell
вам нужно немного помочь в anible.
Для задачи, которая выполняет только проверку и ничего не изменяет, вы должны добавить:
changed_when: False
always_run: yes
Последнее позволяет запускать задачу даже в режиме проверки.
Ради полноты такие задачи обычно сочетаются с другими, которые выполняют реальную модификацию, например:
- 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