概述远端状态与锁可确保多人协作的状态一致性与并发安全。通过计划比较与详细退出码检测漂移,并以工作空间隔离环境,提升可控性与合规。关键实践与参数后端存储: S3加密存储状态, 按路径分环境锁服务: DynamoDB锁表确保单写者, 防止竞态工作空间: `workspace` 区分 `dev/stage/prod`漂移检测: `terraform plan -detailed-exitcode` 识别偏差审计: 保存计划输出与变更记录示例/配置/实现terraform { backend "s3" { bucket = "tf-state-bucket" key = "prod/infra.tfstate" region = "ap-southeast-1" dynamodb_table = "tf-locks" encrypt = true } } provider "aws" { region = "ap-southeast-1" } resource "aws_s3_bucket" "logs" { bucket = "app-logs-123" force_destroy = true } terraform init terraform workspace new prod terraform workspace select prod terraform plan -out tfplan terraform apply tfplan terraform plan -detailed-exitcode || echo $? 验证锁验证: 并行触发两次 `apply` 时仅一个成功, 另一个等待或失败, DynamoDB出现锁记录漂移检测: 手动修改资源后 `plan -detailed-exitcode` 返回2并输出差异, 无改动返回0工作空间隔离: 在不同workspace下状态路径不同且相互独立审计: 计划文件与 `apply` 日志保存可追踪注意事项状态后端需启用加密与访问控制锁表按吞吐与容量配置, 避免热点避免在无人值守流程中忽略退出码导致漂移未被处理变量与密钥使用安全注入, 不写入状态明文

发表评论 取消回复