跳至主要内容

命令:state push

tofu state push 命令用于手动将本地状态文件上传到 远程状态。此命令还适用于本地状态。

此命令应很少使用。它仅作为在远程状态需要手动干预时使用的实用工具。

用法

用法:tofu state push [选项] PATH

此命令将 PATH 指定的状态推送到当前配置的 后端

如果 PATH 为 "-",则要推送到标准输出的状态数据将从标准输入读取。此数据将完全加载到内存中并在写入目标状态之前进行验证。

OpenTofu 将执行多项安全检查以防止您进行看似不安全的更改。

  • **不同的血统**:如果状态中的“血统”值不同,OpenTofu 将不允许您推送状态。不同的血统表明状态完全不同,您可能会丢失数据。

  • **更高的远程序列号**:如果目标状态中的“序列号”值高于要推送的状态,OpenTofu 将阻止推送。更高的序列号表明目标状态中存在本地状态中未记录的数据。

可以使用 -force 标志禁用这两项安全检查。**不建议这样做。**如果禁用安全检查并推送状态,目标状态将被覆盖。

对于使用 cloud 后端remote 后端 的配置,tofu state push 还接受选项 -ignore-remote-version

此命令还接受以下选项以进行 tofu state push

  • -lock=false - 在操作期间不要保持状态锁。如果其他人可能同时对同一个工作区运行命令,这很危险。

  • -lock-timeout=DURATION - 除非使用 -lock=false 禁用锁定,否则指示 OpenTofu 在返回错误之前尝试获取锁一段时间。持续时间语法是数字后跟一个时间单位字母,例如 “3s” 表示三秒。

  • ignore-remote-version.

  • -var 'NAME=VALUE' - 为配置根模块中声明的单个 输入变量 设置值。多次使用此选项以设置多个变量。有关更多信息,请参阅 命令行上的输入变量

  • -var-file=FILENAME - 使用 “tfvars” 文件 中的定义,为配置根模块中声明的许多 输入变量 设置值。多次使用此选项以包含多个文件中的值。

除了 -var-var-file 选项之外,还有几种其他方法可以为根模块中的输入变量设置值。有关更多信息,请参阅 为根模块变量分配值