Инициализация и миграция
После настройки параметров облачной серверной части для рабочего каталога необходимо запустить tofu init, чтобы завершить настройку. Если в рабочем каталоге нет существующего состояния OpenTofu, можно сразу начать использовать OpenTofu с облачной серверной частью.
При запуске tofu init в следующих случаях OpenTofu предложит выбрать, следует ли переносить состояние из существующих рабочих пространств.
-
Миграция с локального состояния или серверных частей состояния: если в рабочем каталоге уже есть данные состояния в одном или нескольких рабочих пространствах, OpenTofu спросит, хотите ли вы перенести это состояние в новые рабочие пространства облачной серверной части.
-
Миграция с серверной части
remote: если рабочий каталог уже был подключен к облачной серверной части с помощью серверной частиremote, OpenTofu сможет продолжить использовать те же рабочие пространства облачной серверной части. Вам потребуется заменить блок серверной частиremoteблокомcloud.
Миграция с локального состояния или серверных частей состояния
Если в рабочем каталоге уже доступны данные состояния (с использованием локального состояния или серверной части состояния), OpenTofu запросит ваше разрешение на перенос этого состояния в облачную серверную часть. Вам потребуются права на управление рабочими пространствами в организации целевой облачной серверной части. Этот интерактивный процесс сопровождается пояснениями и похож на переход между серверными частями состояния.
Во время миграции OpenTofu также может предложить переименовать рабочие пространства: присвоить имя рабочему пространству default без имени (облачная серверная часть требует, чтобы у всех рабочих пространств были имена) или добавить в имена рабочих пространств больше контекстной информации. В отличие от рабочих пространств, доступных только в OpenTofu CLI и представляющих несколько сред, связанных с одной конфигурацией (например, 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. Для OpenTofu и Terraform версии 1.1 или новее рекомендуется использовать встроенную интеграцию cloud, поскольку она обеспечивает более удобную работу и ряд улучшений.
Замена блока
При переходе с серверной части 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.10/cli/cloud/migrating/