Команда: state push
Команда tofu state push используется для ручной загрузки локального файла состояния в удалённое состояние. Эта команда также работает с локальным состоянием.
Эту команду следует использовать редко. Она предназначена только для случаев, когда необходимо вручную вмешаться в удалённое состояние.
Использование
Использование: tofu state push [options] PATH
Эта команда отправляет состояние, указанное в PATH, в настроенный в данный момент бэкенд.
Если PATH равен "-", данные состояния для отправки считываются из stdin. Эти данные полностью загружаются в память и проверяются до записи в целевое состояние.
Файлы состояния OpenTofu должны иметь формат UTF-8 без метки порядка байтов (BOM). В PowerShell в Windows используйте Set-Content для автоматического кодирования файлов в формате UTF-8. Например, выполните tofu state push | sc terraform.tfstate.
OpenTofu выполнит несколько проверок безопасности, чтобы предотвратить изменения, которые могут быть небезопасными:
-
Различающаяся lineage: Если значение «lineage» в состоянии различается, OpenTofu не позволит отправить это состояние. Различающаяся lineage указывает на то, что состояния совершенно разные и вы можете потерять данные.
-
Более высокий serial удалённого состояния: Если значение «serial» в целевом состоянии выше, чем в отправляемом состоянии, OpenTofu запретит отправку. Более высокий serial указывает на то, что целевое состояние содержит данные, которые не учтены в отправляемом локальном состоянии.
Обе эти проверки безопасности можно отключить флагом -force. Это не рекомендуется. Если отключить проверки безопасности и отправить состояние, целевое состояние будет перезаписано.
Для конфигураций, использующих только бэкенд cloud или бэкенд remote, команда tofu state push также принимает параметр -ignore-remote-version.
Для использования переменных в источниках модулей, конфигурации бэкенда или блоке шифрования при запуске tofu state push необходимо задать значения переменных корневого модуля.
Эта команда также принимает следующие параметры для tofu state push:
-
-lock=false— не блокировать состояние на время выполнения операции. Это опасно, если другие пользователи могут одновременно выполнять команды в той же рабочей области. -
-lock-timeout=DURATION— если блокировка не отключена с помощью-lock=false, указывает OpenTofu повторять попытки получения блокировки в течение заданного времени, прежде чем вернуть ошибку. Длительность задаётся числом и обозначением единицы времени, например «3s» — три секунды. -
-var 'NAME=VALUE'— задаёт значение для одной входной переменной, объявленной в корневом модуле конфигурации. Используйте этот параметр несколько раз, чтобы задать значения нескольких переменных. Дополнительные сведения см. в разделе Входные переменные в командной строке. -
-var-file=FILENAME— задаёт значения для нескольких входных переменных, объявленных в корневом модуле конфигурации, используя определения из файла «tfvars». Используйте этот параметр несколько раз, чтобы включить значения из нескольких файлов.
Помимо параметров -var и -var-file, есть несколько других способов задать значения входных переменных в корневом модуле. Дополнительные сведения см. в разделе Задание значений переменных корневого модуля.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.9/cli/commands/state/push/