概览与核心价值Terraform 通过模块化与状态管理,实现跨环境(dev/staging/prod)的一致性与复用。本文提供可复现的后端配置、Workspace 隔离与依赖图可视化方法,降低漂移与冲突风险。模块化结构infra/ modules/ vpc/ main.tf variables.tf outputs.tf eks/ main.tf variables.tf outputs.tf envs/ dev/ main.tf prod/ main.tf 示例 `envs/dev/main.tf`:terraform { required_version = ">= 1.6.0" backend "s3" { bucket = "company-terraform-state" key = "dev/infra.tfstate" region = "us-east-1" encrypt = true } } provider "aws" { region = "us-east-1" } module "vpc" { source = "../../modules/vpc" cidr_block = "10.0.0.0/16" } module "eks" { source = "../../modules/eks" vpc_id = module.vpc.vpc_id } 状态管理与 Workspaceterraform init terraform workspace new dev terraform workspace new prod terraform workspace select dev terraform plan && terraform apply -auto-approve 参数与验证:远程后端:S3 + DynamoDB(状态锁)避免并发冲突Workspace:不同环境状态隔离,`plan` 输出变更仅影响当前环境- 依赖图:`terraform graphdot -Tpng > graph.png` 可视化资源依赖关系最佳实践将敏感变量注入为环境变量或使用 `tfvars` 管理,不写入仓库模块输出作为上游依赖,对齐版本与接口在 CI 中使用 `plan` + 人工审核,再执行 `apply`常见问题状态漂移:手工更改云资源导致 `plan` 与实际不一致,需 `terraform refresh`远端权限:后端存储的访问策略需最小权限结论通过模块化、远端状态与 Workspace 隔离,Terraform 能稳定管理多环境基础设施,显著降低配置漂移与冲突风险。

发表评论 取消回复