摧毁特定的地形基础设施

Fjo*_*tte 6 terraform terraform-provider-aws

我使用工作区、本地文件和 -backend-config 使用 terraform 创建了不同环境(测试/产品)的基础设施,因此只有两个不同的文件,其他文件对于这两种环境都是通用的。

不幸的是,我没有找到一种方法以相同的方式破坏特定环境(无需为每个环境创建大量特定文件)。

我错过了什么吗?有办法做到吗?

任何帮助,将不胜感激。

提前致谢 !

问候,

弗洛朗

编辑:感谢您的回答,我设法使用工作区、本地变量和后端配置来做我想做的事情!

Som*_*ter 9

您可以使用-target目标特定资源来销毁。

terraform destroy \
  -target 'module.default.aws_autoscaling_group.one' \
  -target 'module.default.aws_autoscaling_group.two'
Run Code Online (Sandbox Code Playgroud)

笔记

  • count如果使用或for_each逻辑导致目标名称中出现方括号,则需要在目标周围加上引号。
  • 单引号更好,因为 afor_each会返回一个双引号键,如果用双引号包围目标,则需要转义该键


BMW*_*BMW 0

不要将 terraform 命令混合init/workspaceplan/apply/destroy.

所以我猜您使用以下命令运行来设置后端(保存 tfstate 文件的位置)

terraform init -backend-config=<path>
terraform get
terraform workspace select <env>
Run Code Online (Sandbox Code Playgroud)

-var-file=<file>然后,您应该对所有计划、应用和销毁命令使用相同或选项运行以下命令-var 'foo=bar'

terraform plan -var-file=dev/terraformtfvars -var 'foo=bar'
terraform apply -var-file=dev/terraformtfvars -var 'foo=bar'
terraform destroy -var-file=dev/terraformtfvars -var 'foo=bar'
Run Code Online (Sandbox Code Playgroud)

请告诉我这是否能解释您的担忧。