Ansible: --check и --diff перед продом

Пробный прогон показывает изменения до применения, но у него есть слепые зоны.

· 2 мин

Перед запуском плейбука на рабочие серверы полезно увидеть, что именно он поменяет:

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

Пробный прогон не гарантия, но хороший фильтр для очевидных ошибок.

logbookdev — записки инженера эксплуатации. Нашли неточность или знаете способ лучше — значит, будет следующая запись.

Ещё по теме

Архив →