Команда: state replace-provider
Команда tofu state replace-provider используется для замены провайдера ресурсов в состоянии OpenTofu.
Использование
Использование: tofu state replace-provider [options] FROM_PROVIDER_FQN TO_PROVIDER_FQN
Эта команда обновляет все ресурсы, использующие провайдер "from", заменяя его указанным провайдером "to". Это позволяет изменить источник провайдера, у которого уже есть ресурсы в состоянии.
Перед сохранением любых изменений команда создаст резервную копию состояния. Отключить создание резервной копии нельзя. Из-за разрушительного характера этой команды резервные копии обязательны.
Использование переменных в источниках модулей, конфигурации бэкенда или блоке шифрования требует присваивания значений переменным корневого модуля при запуске tofu state replace-providers.
Эта команда также принимает следующие параметры:
-
-auto-approve— пропустить интерактивное подтверждение. -
-lock=false— не блокировать состояние на время выполнения операции. Это опасно, если другие пользователи могут одновременно выполнять команды в той же рабочей области. -
-lock-timeout=0s— время повторных попыток блокировки состояния. -
-var 'NAME=VALUE'— задаёт значение для одной входной переменной, объявленной в корневом модуле конфигурации. Используйте этот параметр несколько раз, чтобы задать значения нескольких переменных. Подробнее см. в разделе Входные переменные в командной строке. -
-var-file=FILENAME— задаёт значения для любого количества входных переменных, объявленных в корневом модуле конфигурации, используя определения из файла "tfvars". Используйте этот параметр несколько раз, чтобы включить значения из нескольких файлов.
-
-json— включает вывод машиночитаемого интерфейса JSON. Этот параметр можно использовать только вместе с флагом-auto-approve. -
-json-into=out.json— формирует тот же вывод, что и -json, но перенаправляет его в файл. Это позволяет одновременно сохранять машиночитаемые и удобочитаемые для человека журналы.
Помимо параметров -var и -var-file, существует несколько других способов задать значения входных переменных в корневом модуле. Подробнее см. в разделе Присваивание значений переменным корневого модуля.
Для конфигураций, использующих только бэкенд cloud или бэкенд remote, команда tofu state replace-provider также принимает параметр -ignore-remote-version.
Для конфигураций, использующих только локальное состояние local, команда tofu state replace-provider также принимает устаревшие параметры -state, -state-out и -backup.
Пример
В приведённом ниже примере провайдер hashicorp/aws заменяется форком от acme, размещённым в частном реестре по адресу registry.acme.corp:
$ tofu state replace-provider hashicorp/aws registry.acme.corp/acme/aws
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/cli/commands/state/replace-provider/