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