跳至主要内容

命令:taint

tofu taint 命令通知 OpenTofu 特定对象已降级或损坏。OpenTofu 通过在 OpenTofu 状态中将对象标记为“受污染”来表示这一点,并且 OpenTofu 将在您创建的下一个计划中建议替换它。

我们建议使用 tofu apply-replace 选项 来强制 OpenTofu 替换对象,即使没有需要替换它的配置更改。

代码块
$ tofu apply -replace="aws_instance.example[0]"

我们建议使用 -replace 选项,因为更改将反映在 OpenTofu 计划中,让您在采取任何外部可见操作之前了解它将如何影响您的基础设施。当您使用 tofu taint 时,其他用户可能会在您查看影响之前针对受污染的对象创建新的计划。

用法

代码块
$ tofu taint [options] <address>

address 参数是要标记为受污染的资源的地址。地址采用 资源地址语法,如其他命令(例如)的输出所示:

  • aws_instance.foo
  • aws_instance.bar[1]
  • aws_instance.baz[\"key\"](资源地址中的引号必须在命令行中进行转义,以避免被您的 shell 解释)
  • module.foo.module.bar.aws_instance.qux

此命令接受以下选项

  • -allow-missing - 如果指定,即使资源丢失,命令也会成功(退出代码为 0)。对于其他情况,命令可能仍会返回错误,例如如果读取或写入状态时出现问题。

  • -lock=false - 禁用 OpenTofu 的默认行为,即在操作期间尝试对状态获取读/写锁。

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

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

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

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

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

对于仅使用 local 后端 的配置,tofu taint 还接受旧版选项 -state-state-out-backup