跳到主要内容

命令: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