Команда: 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". Используйте этот параметр несколько раз, чтобы включить значения из нескольких файлов. -
-json— включает вывод машиночитаемого JSON-интерфейса. -
-json-into=out.json— формирует тот же вывод, что и -json, но перенаправляет его в файл. Это позволяет одновременно сохранять журналы в человекочитаемом и машиночитаемом форматах.
Помимо параметров -var и -var-file, есть несколько других способов задать значения входных переменных в корневом модуле. Дополнительные сведения см. в разделе Задание значений переменных корневого модуля.
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/push/