Fjo*_*tte 6 terraform terraform-provider-aws
我使用工作区、本地文件和 -backend-config 使用 terraform 创建了不同环境(测试/产品)的基础设施,因此只有两个不同的文件,其他文件对于这两种环境都是通用的。
不幸的是,我没有找到一种方法以相同的方式破坏特定环境(无需为每个环境创建大量特定文件)。
我错过了什么吗?有办法做到吗?
任何帮助,将不胜感激。
提前致谢 !
问候,
弗洛朗
编辑:感谢您的回答,我设法使用工作区、本地变量和后端配置来做我想做的事情!
您可以使用-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逻辑导致目标名称中出现方括号,则需要在目标周围加上引号。for_each会返回一个双引号键,如果用双引号包围目标,则需要转义该键不要将 terraform 命令混合init/workspace到plan/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)
请告诉我这是否能解释您的担忧。
| 归档时间: |
|
| 查看次数: |
10076 次 |
| 最近记录: |