Переход

Инфраструктура как код на OpenTofu

Переводим Terraform и Terraform Cloud на OpenTofu — открытый форк Terraform под управлением Linux Foundation — с запуском из вашего GitLab и провайдерами из зеркала в вашем контуре. А то, что создавалось в облаке вручную, переносим в код, ничего не ломая.

Состояние сохраняется Изменения — через merge request Фиксированная цена
Задача

Из РФ провайдеры не отдают ни реестр Terraform, ни реестр OpenTofu, а часть облака создана вручную и нигде не описана.

Что делаем

Переводим на OpenTofu с запуском из GitLab, поднимаем зеркало провайдеров и импортируем ручные ресурсы в код.

Результат

Та же инфраструктура, изменения — через merge request, а пустой plan — доказательство.

С Terraform и Terraform Cloud — на OpenTofu

С 2023 года новые версии Terraform выходят под лицензией BSL, а не под открытой. OpenTofu продолжает открытую ветку (MPL-2.0), читает те же конфигурации и умеет то, чего нет в Terraform: например, шифровать состояние ключами из OpenBao.

Переход на OpenTofu не решает вопрос доступа из РФ. HashiCorp закрыла свои репозитории для российских IP-адресов (документация Yandex Cloud). Реестр OpenTofu с августа 2024 года тоже закрыт для России во исполнение санкций США (README OpenTofu), а провайдеры Yandex Cloud и Cloud.ru из него удалены по правилам реестра. Поэтому в любом случае нужно зеркало.

Terraform / Terraform Cloudсейчас
OpenTofu + GitLabв вашем контуре
Состояние (state)Terraform Cloud или локальные файлы
Хранилище с блокировкамив GitLab или S3-совместимом
Запуск plan и applyв Terraform Cloud
Конвейер GitLabplan в каждом MR, apply после одобрения
Провайдеры и модулиреестры, закрытые для РФ
Зеркало в вашем контуреверсии обновляются через merge request
Переменные и секретыв Terraform Cloud
Переменные GitLab или OpenBaoдоступ по окружениям
Проверка—
Пустой planкритерий готовности

Зеркало провайдеров и модулей

И Terraform, и OpenTofu умеют брать провайдеры не из реестра, а с зеркала. Для РФ это обязательная часть перехода, а заодно защита от того, что нужная версия однажды пропадёт.

Своё зеркало

Нужные провайдеры выгружаются командой tofu providers mirror и раздаются с вашего HTTPS-сервера или из OCI-реестра, например Harbor. Модули хранятся в реестре модулей GitLab.

Зеркало облака

У Yandex Cloud есть своё зеркало реестра провайдеров. Его можно использовать как источник для вашего зеркала или напрямую, если сеть позволяет.

Версии под контролем

Версии закреплены в lock-файле. Новая версия провайдера попадает в зеркало через merge request, как любое другое изменение.

ПровайдерПоследняя версия в реестре TerraformВ реестре OpenTofu
Yandex Cloud0.239.00.127.0, новых версий нет
Cloud.ru (SberCloud)1.13.11.12.2
VK Cloud0.18.00.18.0
Selectel9.3.29.3.2

Версии — по API реестров registry.terraform.io и registry.opentofu.org, проверено 21.10.2026. Способы установки — по документации OpenTofu: provider_installation, providers mirror, зеркала в OCI-реестрах (нужен реестр с OCI Distribution 1.1). Зеркало Yandex Cloud — по документации Yandex Cloud.

Ручное — в код

В большинстве облачных аккаунтов есть ресурсы, которые создавали в консоли и меняли руками: про них знает один человек, а повторить их нельзя. Импортируем такие ресурсы в OpenTofu, не трогая то, что работает, — и дальше любое изменение идёт через код и ревью.

  • Инвентаризация ресурсов облака и выбор, что берём в код.
  • Импорт в OpenTofu с проверкой: plan после импорта пустой.
  • Структура модулей и окружений, понятная команде.
  • Конвейер в GitLab: изменения инфраструктуры только через merge request.

Провайдеры есть у Yandex Cloud, VK Cloud, Selectel и Cloud.ru, в своих ЦОД — у VMware vSphere и OpenStack. Ресурсы платформ без провайдера в код не переносим. Для госсистем это шаг к контролю конфигураций по п. 37 приказа ФСТЭК № 117: изменения идут через код и видны.

Как проходит проект

  1. Шаг 1 · 1–3 дня

    Обследование

    Рабочие пространства, состояние, провайдеры, вручную созданные ресурсы. Согласуем объём и критерии готовности.

  2. Шаг 2

    Конвейер

    Настраиваем OpenTofu в GitLab: хранение состояния, plan и apply, доступы.

  3. Шаг 3

    Перенос

    Переносим рабочие пространства или импортируем ресурсы по очереди, на каждом шаге — пустой plan.

  4. Шаг 4

    Передача

    Документация, правила работы с кодом инфраструктуры, сессия с командой.

Порядок всегда один. Сколько займёт каждый шаг, зависит от объёма: замеры на первом шаге задают цену и сроки.

Пакеты

Terraform → OpenTofu

Включая уход с Terraform Cloud
  • Перенос состояния и переменных
  • Конвейер plan/apply в GitLab
  • Зеркало провайдеров и модулей
Цена — по запросу
Запросить расчёт

Ручное → код

Импорт облачных ресурсов в OpenTofu
  • Инвентаризация и импорт
  • Модули и окружения
  • Изменения только через merge request
Цена — по запросу
Запросить расчёт

Не знаете, с чего начать? Аудит инфраструктуры как кода покажет состояние дел и объём работ. Нужен только конвейер, без перехода? OpenTofu в GitLab.

Вопросы и ответы

Инфраструктура изменится при переходе?

Нет. Меняется только то, где хранится состояние и откуда запускаются изменения. Критерий готовности — plan без изменений.

Придётся переписывать конфигурации?

Обычно нет: OpenTofu читает конфигурации Terraform. Точечные правки — например, источники провайдеров — делаем в рамках проекта.

Если перейти на OpenTofu, зеркало не понадобится?

Понадобится. Реестр OpenTofu закрыт для российских IP-адресов так же, как реестр HashiCorp. На OpenTofu переходят ради открытой лицензии и новых возможностей, а провайдеры в РФ в любом случае берутся с зеркала.

Можно остаться на Terraform?

Можно. Зеркало и конвейер в GitLab работают и с Terraform. Мы по умолчанию ставим OpenTofu из-за лицензии, но решение за вами.

Расскажите, как у вас сейчас

Terraform или Terraform Cloud, сколько рабочих пространств, какое облако, много ли создано вручную. Ответим с планом и сроками.

Обсудить проект