Ansible: --check и --diff перед продом
Пробный прогон показывает изменения до применения, но у него есть слепые зоны.
Перед запуском плейбука на рабочие серверы полезно увидеть, что именно он поменяет:
ansible-playbook site.yml --limit web --check --diff
--check ничего не применяет, а --diff показывает разницу для шаблонов и файлов. Для конфигов это почти как ревью.
Слепые зоны
- Модули
commandиshellв check-режиме пропускаются, и всё, что зависит от ихregister, может упасть или повести себя иначе. - Задачи, которые только читают состояние, можно разрешить и в пробном прогоне:
check_mode: falseвместе сchanged_when: false. - Если следующая задача зависит от пакета, который «был бы» установлен, в check-режиме его нет.
- name: Read current version
command: /opt/app/bin/app --version
register: app_version
check_mode: false
changed_when: false
Пробный прогон не гарантия, но хороший фильтр для очевидных ошибок.