命令:untaint
OpenTofu 拥有一个名为“tainted”的标记,用于跟踪对象可能已损坏,因此未来的 OpenTofu 计划应替换它。
如果在多步骤“创建”操作期间发生错误,OpenTofu 会自动将对象标记为“tainted”,因为 OpenTofu 无法确定对象是否处于完全正常状态。
你也可以使用已弃用的命令tofu taint
手动将对象标记为“tainted”,但我们不再推荐这种工作流程。
如果 OpenTofu 目前认为特定对象为 tainted,但你已确定它实际上运行正常,无需替换,则可以使用 tofu untaint
从该对象中删除 tainted 标记。
此命令不会修改任何真实的远程对象,但会修改状态以删除 tainted 状态。
如果你从对象中删除了 tainted 标记,但后来发现它毕竟已降级,则可以通过使用以下命令创建和应用计划来替换它,而无需先重新标记对象为 tainted
tofu apply -replace="aws_instance.example[0]"
用法
用法:tofu untaint [选项] 地址
地址
参数是资源地址,用于识别当前为 tainted 的特定资源实例。
此命令还接受以下选项
-
-allow-missing
- 如果指定,即使资源不存在,命令也会成功(退出代码 0)。命令可能仍会返回其他情况的错误,例如,如果读取或写入状态时出现问题。 -
-lock=false
- 在操作期间不保持状态锁定。如果其他人可能同时对同一个工作区运行命令,这很危险。 -
-lock-timeout=DURATION
- 除非使用-lock=false
禁用锁定,否则指示 OpenTofu 在返回错误之前尝试获取锁一段时间。持续时间语法是一个数字,后跟一个时间单位字母,例如“3s”表示三秒。 -
-no-color
- 禁用输出中的终端格式化序列。如果在无法解释终端格式化的系统上下文中运行 OpenTofu,请使用此选项。 -
-var 'NAME=VALUE'
- 为配置根模块中声明的单个输入变量设置值。多次使用此选项以设置多个变量。有关更多信息,请参阅命令行上的输入变量。 -
-var-file=FILENAME
- 使用"tfvars" 文件中的定义,为配置根模块中声明的可能多个输入变量设置值。多次使用此选项以从多个文件中包含值。
除了 -var
和 -var-file
选项之外,还有几种其他方法可以为根模块中的输入变量设置值。有关更多信息,请参阅为根模块变量赋值。
对于使用cloud
后端或remote
后端的配置,tofu untaint
还接受选项-ignore-remote-version
。
对于仅使用local
后端的配置,tofu untaint
还接受旧版选项-state
、-state-out
和 -backup
。