命令:taint
tofu taint
命令通知 OpenTofu 特定对象已降级或损坏。OpenTofu 通过在 OpenTofu 状态中将对象标记为“受污染”来表示这一点,并且 OpenTofu 将在您创建的下一个计划中建议替换它。
此命令已弃用,我们建议改用 tofu apply
的 -replace
选项(详细信息如下)。
推荐替代方案
我们建议使用 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
。