Terraform и Ansible ломаются не в коде, а в порядке применения и границах ответственности
IaC работает, пока вы не смешали две задачи: Terraform должен создавать и связывать инфраструктуру, Ansible — настраивать то, что уже поднято. Когда один инструмент начинает делать работу другого, получаются сюрпризы: дрейф, повторные прогоны и конфиги, которые нельзя без страха пересобрать.
Базовые правила без магии:
— state хранится централизованно и с блокировкой;
— модули принимают входы явно, без скрытых зависимостей;
— секреты не лежат в переменных окружения «на время»;
— plan и diff просматриваются до apply, иначе автоматизация превращается в ускоренный ручной труд.
В Ansible важнее идемпотентность, чем «красивый playbook»: задачи должны переживать повторный запуск без побочных эффектов. В Terraform важнее предсказуемость графа зависимостей: если ресурс можно создать только после чужого side effect, это уже не инфраструктура, а импровизация с продакшеном.
Не смешивайте provisioning и configuration в одном слое без необходимости. Когда граница между ними ясна, откаты становятся проще, а инциденты — скучнее. А скучный продакшен, как известно, и есть хороший продакшен.
Трекер: конфиги
@tracker_configs_arb
Terraform и Ansible ломаются не в коде, а в порядке применения и границах ответственности
Этот пост опубликован в Telegram-канале Трекер: конфиги. Подписаться можно по ссылке: @tracker_configs_arb.