【问题标题】:How to delete infrastructure resources if we loose tfstate file in terraform?如果我们在 terraform 中丢失 tfstate 文件,如何删除基础设施资源?
【发布时间】:2021-11-21 12:53:05
【问题描述】:

我创建了一个 terraform 模板来部署 EC2 虚拟机。它还创建创建 EC2 VM 所需的子网、安全组、网络接口。 我将此 terraform 模板上传到 S3 存储桶。接下来,我创建了下载此 terraform 模板并创建资源的 Lambda 函数。 我没有 tfstate 文件,因为 Lambda 函数已终止。现在,我想使用 Terraform 模板销毁 Lambda 函数创建的这些资源。

我该怎么做?

我尝试了以下方法,但没有成功:

  1. 我在本地环境中有一个terraform plan 文件。找不到将其传递给 terraform destroy 的方法。

  2. 当我在本地环境中尝试此模板时,它生成了一个tfstate 文件。我使用该文件来破坏资源,但出现以下错误: Terraform 检测到自上次 terraform apply 以来在 terraform 之外进行的以下更改。

  3. 我尝试terraform refreshterraform delete刷新资源状态并销毁它们。

  4. 我也尝试了terraform plan -destroyterraform apply -destroy 命令。

除了手动删除这些资源还有其他方法吗?

【问题讨论】:

  • 1.您可以将此传递给terraform apply。 2. 我们能看到那个输出吗? 3. 不确定,因为没有terraform delete 子命令。 4. terraform plan -destroy 将与状态和配置一起使用。您能否进一步详细说明您是否尝试过?
  • 如果您丢失了 TF 状态文件,您必须前往 AWS 控制台并手动清理所有内容。
  • @Marcin 我手动清理了一些东西。我正在寻找一种通过一些命令删除的方法。我的模板创建了 16 个资源。遍历每个服务然后定位资源是一项艰巨的任务。
  • 如果您不知道自己创建了哪些资源,任何命令都无济于事。唯一通用的解决方案是aws-nuke 删除所有内容。
  • @MattSchuchard 我通过了相同的计划文件来申请,但它不起作用,因为一些资源已经存在同名。您希望看到哪个命令输出?您需要什么额外的细节?

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

由于您拥有 terraform 资源和模板,因此您还可以使用 terraform import 手动将资源导入状态文件,但首先测试上层工作流程。

【讨论】:

    猜你喜欢
    • 2015-10-07
    • 2022-10-20
    • 2022-01-15
    • 2019-06-04
    • 2019-06-08
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多