Terraform
Назначение
Заголовок раздела «Назначение»Terraform — IaC-инструмент HashiCorp для создания, изменения и версионирования облачных и on-prem ресурсов. Конфигурация на HCL описывает желаемое состояние, а providers работают с API платформ и SaaS.
Продукт имеет несколько редакций и source-available лицензию; условия выбранной версии проверяют отдельно. OpenTofu рассматривают как открытую альтернативу с совместимым рабочим процессом.
Возможности и интеграции
Заголовок раздела «Возможности и интеграции»- write → plan → apply с предварительным списком изменений;
- state для связи конфигурации с реальными ресурсами;
- resource graph и учёт зависимостей;
- модули, variables, outputs и переиспользование конфигурации;
- тысячи providers для облаков, Kubernetes, DNS и SaaS;
- remote backends, командная работа и policy/testing integrations;
- import существующих ресурсов и обнаружение drift.
Ограничения
Заголовок раздела «Ограничения»State требует защищённого хранения, контроля доступа и согласованной работы команды. apply может заменить или удалить ресурс: plan для stateful-объектов проверяют отдельно. Ручные изменения создают drift, а сам Terraform не настраивает всё содержимое VM — для этого часто нужен Ansible или образ.
Когда выбирать
Заголовок раздела «Когда выбирать»Подходит для декларативного provisioning нескольких облачных и SaaS-ресурсов с развитой экосистемой providers. OpenTofu выбирают по лицензионным требованиям, Pulumi — для программирования на общем языке.
Связанные материалы
Заголовок раздела «Связанные материалы»Материалы и источники
Заголовок раздела «Материалы и источники»- Terraform: Introduction — providers, state и workflow.
- Terraform: State — назначение и ограничения state.
- Terraform: Modules — переиспользуемые конфигурации.