Инициализация и миграция
После настройки параметров облачного бэкенда для рабочей директории необходимо выполнить tofu init для завершения настройки. Если в рабочей директории нет существующего состояния OpenTofu, вы можете сразу начать использовать OpenTofu с облачным бэкендом.
При запуске tofu init в следующих сценариях OpenTofu предложит вам выбрать, следует ли переносить состояние из существующих рабочих пространств.
-
Миграция с локального состояния или бэкендов состояния: если рабочая директория уже содержит данные состояния в одном или нескольких рабочих пространствах, OpenTofu спросит, хотите ли вы перенести это состояние в новые рабочие пространства облачного бэкенда.
-
Миграция с бэкенда
remote: если рабочая директория уже была подключена к облачному бэкенду с помощью бэкендаremote, OpenTofu сможет продолжить использование тех же рабочих пространств облачного бэкенда. Вам потребуется заменить блок бэкендаremoteна блокcloud.
Миграция с локального состояния или бэкендов состояния
Если в рабочей директории уже есть доступные данные состояния (использующие локальное состояние или бэкенд состояния), OpenTofu запросит ваше подтверждение на миграцию этого состояния в облачный бэкенд. Вам потребуются разрешения на управление рабочими пространствами в целевой организации облачного бэкенда. Этот процесс является интерактивным, понятным и напоминает перемещение между бэкендами состояния.
OpenTofu также может предложить вам переименовать рабочие пространства во время миграции: либо чтобы дать имя безымянному рабочему пространству default (облачный бэкенд требует наличия имени у всех рабочих пространств), либо чтобы добавить именам контекстной информации. В отличие от рабочих пространств, используемых только через CLI OpenTofu, которые представляют несколько сред, связанных с одной конфигурацией (например, production, staging, development), рабочие пространства облачного бэкенда могут представлять полностью независимые конфигурации и должны иметь уникальные имена в пределах организации облачного бэкенда.
По этой причине OpenTofu предложит вам переименовать рабочие пространства рабочей директории по шаблону на основе их существующих имен. Это может указывать на то, что данные конкретные рабочие пространства используют общую конфигурацию. Типичная стратегия — <COMPONENT>-<ENVIRONMENT>-<REGION> (например, networking-prod-us-east, networking-staging-us-east).
Миграция с бэкенда remote
Если рабочая директория уже была подключена к облачному бэкенду с помощью бэкенда remote, OpenTofu сможет продолжить использование тех же рабочих пространств облачного бэкенда. Локальные имена, отображаемые для этих рабочих пространств, изменятся в соответствии с их удаленными именами.
Бэкенд remote являлся основной реализацией облачных бэкендов для версий Terraform от 0.11.13 до 1.0.x. Мы рекомендуем использовать нативную интеграцию cloud для OpenTofu и Terraform версий 1.1 или новее, так как она обеспечивает более удобный интерфейс взаимодействия и различные улучшения.
Замена блока
При переходе с бэкенда remote на блок cloud OpenTofu продолжит использовать тот же набор рабочих пространств облачного бэкенда. Замените ваш блок backend "remote" на эквивалентный блок cloud.
Одно рабочее пространство
Если вы использовали одно рабочее пространство с аргументом name, измените метку блока на cloud.
terraform {
- backend "remote" {
+ cloud {
organization = "my-org"
workspaces {
name = "my-app-prod"
}
}
}Несколько рабочих пространств
Если вы использовали несколько рабочих пространств с аргументом prefix, замените его блоком cloud с аргументом tags. Вы можете указать любое количество тегов для различения рабочих пространств вашей рабочей директории, но хорошей отправной точкой может стать использование того префикса, который использовался ранее.
Настраиваемые теги не обязательно должны присутствовать в существующих рабочих пространствах. При инициализации OpenTofu при необходимости добавит указанные теги в рабочие пространства.
terraform {
- backend "remote" {
+ cloud {
organization = "my-org"
workspaces {
- prefix = "my-app-"
+ tags = ["app:mine"]
}
}
}Поскольку блок cloud не поддерживает аргумент prefix, после миграции при использовании OpenTofu CLI вам придется обращаться к рабочим пространствам по их полному имени. Например, вместо tofu workspace select prod необходимо выполнить команду tofu workspace select my-app-prod.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/cli/cloud/migrating/