Terraform 存储库中的退役服务

问题描述 投票:0回答:1

我正在从 Terraform 存储库中删除一项服务。 TF 计划检查失败,因为模块已被删除。

从 Terraform 存储库中停用服务的正确方法是什么。

从服务目录中删除所有文件。 删除失败。

terraform cicd
1个回答
0
投票

在 Terraform 中停用服务时,遵循分步流程至关重要,以避免破坏 Terraform 状态和计划检查。本指南将引导您了解如何安全地删除资源,同时保持提供程序和后端配置完整,直到最后一步。

第 1 步:从 Terraform 配置中删除服务资源

  • 首先,不要删除整个模块文件夹或 main.tf 文件。相反,请进入您要停用的服务的模块文件夹。

  • 识别目录中特定于服务的资源(例如,aws_instance、aws_security_group 等)。

  • 仅注释或删除要停用的服务的资源定义。

例如:

# resource "aws_instance" "example_service" {
#   ami           = "ami-12345678"
#   instance_type = "t2.micro"
#   ...
# }

第 2 步:运行 Terraform Plan 以验证更改

  • 运行以下命令以确保 Terraform 正确识别要销毁的资源:

terraform plan

  • 确认输出显示了销毁资源的计划,没有任何错误。如果存在问题,请检查配置以确保仅针对预期资源。

第 3 步:将更改提交到您的分支并打开 PR

  • 将更改提交到您的分支。
  • 打开拉取请求 (PR) 进行审核。

第 4 步:让您的 PR 获得批准并部署更改

  • 您的 PR 获得批准后,将其合并并部署更改。
  • 这应该会导致 Terraform 删除不再需要的资源。

第 5 步:清理后端配置和工作区(如果适用)

  • 为什么要保留提供者和后端配置到现在? 后端配置是 Terraform 如何知道在哪里存储基础设施状态的方式。如果过早删除后端配置,Terraform 将失去对状态文件的访问权限,并且无法跟踪哪些资源仍然存在或需要销毁。这可能会导致 Terraform 无法再管理孤立资源,从而增加基础设施漂移的风险。

  • 提供商配置对于与您的云资源进行通信是必需的。过早删除它会破坏 Terraform 连接到云提供商的能力,从而阻止其正确销毁现有资源。

  • 现在所有资源已被销毁,您可以继续删除提供程序和后端配置。

  • 创建一个新分支(或使用现有分支)。

  • 假设您之前已删除所有资源文件,只留下提供程序和后端配置,您可以继续从目录中删除这些文件以及目录本身。如果此目录具有为 Terraform Cloud 定义的工作区,您也可以继续删除该工作区。

  • 将更改提交到您的分支并打开 PR。

  • 让您的 PR 获得批准并合并更改。

总结 通过执行这些步骤,您将确保正确停用服务,而不会破坏 Terraform 状态或计划检查。始终记住保持提供程序和后端配置到位,直到资源完全销毁。过早删除这些配置可能会导致 Terraform 无法访问状态文件,从而导致孤立资源和基础设施漂移,以后清理起来可能会很困难。

© www.soinside.com 2019 - 2024. All rights reserved.