Wiki · Технологии разработки
Terraform
Terraform – это инструмент компании HashiCorp, которым серверы, сети, базы данных, DNS-записи и другие облачные ресурсы описывают в текстовых файлах, а затем создают и меняют по этому описанию. Такой подход называют «инфраструктура как код» (Infrastructure as Code, IaC).
Если вы искали Terraform в Яндексе и попали на игры про терраформирование, это другая тема. Здесь речь о том, как подрядчик поднимает для вашего проекта серверы в облаке и почему иногда говорит «это у нас в Terraform».
Зачем описывать серверы файлами, а не кликать в консоли
Обычно сервер создают руками: заходят в панель облака, выбирают параметры, открывают порты. Через год никто не помнит, почему стоят именно такие настройки, а повторить окружение для тестовой копии сайта не получается. С Terraform всё записано в файлах:
resource "yandex_compute_instance" "web" {
name = "shop-web"
resources {
cores = 2
memory = 4
}
}
Файлы лежат в репозитории Git рядом с кодом. По ним видно, кто и когда добавил сервер, а копию инфраструктуры для теста создают из тех же файлов. Работу с конкретным облаком дают провайдеры (providers): свой провайдер есть у Yandex Cloud и многих других платформ.
Что делают terraform plan и terraform apply
Работа идёт в два шага. Команда terraform plan сравнивает описание с тем, что уже создано, и показывает список изменений: что будет добавлено, изменено, удалено. Команда terraform apply применяет этот план. Между ними человек читает план и ловит опасное, например удаление базы данных.
О созданных ресурсах Terraform помнит через файл состояния (state). Его хранят в надёжном общем хранилище, а не на ноутбуке одного разработчика: потеря state превращает поддержку инфраструктуры в ручной разбор.

Лицензия BSL от HashiCorp и форк OpenTofu
10 августа 2023 года HashiCorp перевела будущие версии своих продуктов, в том числе Terraform, с открытой лицензии MPL 2.0 на Business Source License 1.1. По разъяснению компании, пользователи по-прежнему могут применять код в том числе в коммерческих целях, запрет касается тех, кто строит на нём конкурирующий с HashiCorp продукт. В феврале 2025 года сделку по покупке HashiCorp закрыла IBM.
В ответ сообщество сделало форк OpenTofu. Проект ведётся под крылом Linux Foundation, первая стабильная версия вышла 10 января 2024 года, на официальном сайте он описан как прямая замена Terraform с сохранением привычных конфигураций.
| Terraform | OpenTofu | |
|---|---|---|
| Кто развивает | HashiCorp (IBM) | Сообщество под Linux Foundation |
| Лицензия новых версий | BSL 1.1 | Открытая |
| Для какой задачи | Нужны платные продукты и поддержка HashiCorp | Важна открытая лицензия, команда готова следить за совместимостью провайдеров |
Для заказчика, который просто держит сайт в облаке, лицензия BSL ничего не меняет. Скачать Terraform и провайдеры из России можно и через зеркала Yandex Cloud: их настройка описана в документации облака, но там же предупреждают, что зеркало может быть недоступно.
Когда Terraform нужен небольшому проекту
Для сайта на одном VPS или на обычном хостинге Terraform лишний: серверов один-два, меняются они редко. Он начинает окупаться, когда ресурсов в облаке становится много, есть отдельные тестовая и рабочая среды, или проект живёт в Kubernetes. Тогда изменения инфраструктуры проходят проверку как код и выкатываются через GitLab CI/CD. Если подрядчик всё же описал вашу инфраструктуру в Terraform, попросите передать вам репозиторий и доступ к хранилищу state, иначе при смене подрядчика описание придётся собирать заново.

Terraform для проекта: OpenTofu, файл state и доступ из России
Чем OpenTofu отличается от Terraform?
OpenTofu – открытый форк Terraform под Linux Foundation, появившийся после перехода HashiCorp на BSL. Конфигурации в основном совместимы, но перед переходом их стоит проверить.
Что будет, если потерять файл state в Terraform?
Без файла state Terraform не знает, какие ресурсы он уже создал, и попробует создать их заново или не сможет ими управлять. Ресурсы придётся импортировать вручную. Поэтому state держат в общем хранилище, например в объектном хранилище облака, с резервными копиями, блокировкой от одновременных изменений и доступом только у нужных людей. В файле бывают пароли и ключи, так что открывать его всем подряд нельзя.
Как подключить Terraform к Yandex Cloud?
Для Yandex Cloud используют официальный провайдер yandex-cloud/yandex. Документация облака описывает установку и настройку провайдера через зеркало terraform-mirror.yandexcloud.net в файле .terraformrc и способы авторизации, например через IAM-токен сервисного аккаунта.
Если инфраструктура проекта уже описана в Terraform, разберёмся в ней и возьмём на техническую поддержку вместе с сайтом.
Документация HashiCorp, OpenTofu и Yandex Cloud
- Блог HashiCorp: «HashiCorp adopts Business Source License», 10 августа 2023 года
- IBM Newsroom: «IBM Completes Acquisition of HashiCorp», 27 февраля 2025 года
- Linux Foundation: «OpenTofu Announces General Availability», 10 января 2024 года
- Официальный сайт OpenTofu
- Документация Yandex Cloud: «Начало работы с Terraform», «Провайдеры Terraform»
См. также: Docker, Резервное копирование сайта.
Остались вопросы по теме «Terraform»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеСергей ЧерняковWeb-разработчикНад статьёй работали
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
