Infrastructure as Code работает только когда каждый инструмент делает свою работу. Terraform должен описывать инфраструктуру как граф ресурсов: сети, VM, балансировщики, IAM, зависимости. Ansible — настраивать ОС и сервисы внутри уже созданных узлов. Когда их смешивают, конфиги быстро превращаются в клубок, который сложно воспроизводить и ещё сложнее откатывать.
Базовые правила, которые экономят часы в продакшене:
— Terraform не конфигурирует приложения и не управляет содержимым файлов, если это можно сделать иначе.
— Ansible не создаёт инфраструктурные сущности, если ими уже должен владеть Terraform.
— Состояние Terraform хранится централизованно и защищённо, иначе параллельные запуски начинают спорить с реальностью.
— Идемпотентность проверяется не словами, а повторным прогоном без изменений.
Уязвимое место почти всегда одно: ручные правки на сервере. Через неделю они забываются, через месяц конфликтуют с кодом, а потом начинается классическая археология по SSH. Безопасность начинается с доступа: секреты не хардкодятся, переменные не живут в git, а привилегии выдаются минимально необходимыми.
Если инфраструктуру нельзя пересоздать из кода за разумное время, это не IaC, а документация с амбициями. Давайте разберем архитектуру решения: разделите слои, зафиксируйте интерфейсы между ними и автоматизируйте проверки до того, как баги и дедлайны решат сделать это за вас.
Трекер: конфиги
@tracker_configs_arb
Terraform и Ansible ломаются не в коде, а в границах ответственности
Этот пост опубликован в Telegram-канале Трекер: конфиги. Подписаться можно по ссылке: @tracker_configs_arb.