多環境管理
Vibe Prompt
「幫我建立 Terraform 多環境架構:dev/staging/prod 三個環境使用同一份模組但不同變數。」
# environments/dev/main.tf
module "vpc" {
source = "../../modules/vpc"
vpc_cidr = "10.0.0.0/16"
environment = "dev"
public_subnets = ["10.0.1.0/24"]
private_subnets = ["10.0.10.0/24"]
}
# environments/prod/main.tf
module "vpc" {
source = "../../modules/vpc"
vpc_cidr = "10.0.0.0/16"
environment = "prod"
public_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
private_subnets = ["10.0.10.0/24", "10.0.20.0/24", "10.0.30.0/24"]
}
部署指令
terraform -chdir=environments/dev init
terraform -chdir=environments/dev plan -var-file="dev.tfvars"
terraform -chdir=environments/dev apply -var-file="dev.tfvars" -auto-approve
最佳實踐
- dev: 最小資源,節省成本
- staging: 與 prod 相同規格但不同域名
- prod: 完整 HA 架構