<b>IaC ломается не в коде, а в порядке: 5 правил для Terraform и Ansible</b>
Infrastructure as Code хороша ровно до момента, когда state, inventory и playbook начинают жить своей жизнью. Дальше начинается классика: «у меня локально работает», дрейф конфигурации и внезапные ручные правки в проде.
Чтобы не собирать этот набор, держите базовый каркас:
— один репозиторий — один источник правды;
— разделяйте provisioning и configuration;
— храните state отдельно и ограничивайте доступ;
— не смешивайте ручные изменения с declarative-подходом;
— все изменения прогоняйте через plan/check mode, а не через надежду.
Для Terraform важны модули с понятными границами: сеть, вычисления, IAM, storage. Если модуль знает слишком много, он плохо переиспользуется и еще хуже дебажится. Для Ansible — idempotency: задача должна быть безопасной при повторном запуске. Если playbook «чинит» систему только один раз, это не автоматизация, а лотерея.
Ещё один частый баг — отсутствие контрактов между слоями. Terraform создал ресурс, Ansible ожидает, что он уже доступен; в итоге получаем гонки, таймауты и лишний героизм в логах. Решается просто: явные зависимости, проверка готовности и минимизация неявных допущений. Мониторинг должен быть проактивным, а не реактивным.
Держите инфраструктуру в коде так же строго, как приложение: без ручных исключений, без «быстрого фикса», без магии в переменных. Тогда код работает, но есть нюансы — и они управляемые.
Трекер: конфиги
@tracker_configs_arb
<b>IaC ломается не в коде, а в порядке: 5 правил для Terraform и Ansible</b>
Этот пост опубликован в Telegram-канале Трекер: конфиги. Подписаться можно по ссылке: @tracker_configs_arb.