Terraform 状态管理与隔离实践
1. Terraform 状态管理基础
Terraform 在运行 apply 命令前会获取锁,运行完成后释放锁。在 S3 控制台中,若为 S3 存储桶启用版本控制,每次对 terraform.tfstate 文件的更改都会作为单独版本存储。这表明 Terraform 会自动在 S3 与本地之间推送和拉取状态数据,S3 会存储状态文件的每个修订版本,这对调试和回滚到旧版本很有用。
2. Terraform 后端的局限性
2.1 创建存储状态的 S3 存储桶的两步流程
使用 Terraform 创建用于存储 Terraform 状态的 S3 存储桶时,会面临先有鸡还是先有蛋的问题,需要分两步进行:
1. 编写 Terraform 代码创建 S3 存储桶和 DynamoDB 表,并使用本地后端部署该代码。
2. 返回 Terraform 代码,添加远程后端配置以使用新创建的 S3 存储桶和 DynamoDB 表,然后运行 terraform init 将本地状态复制到 S3。
若要删除 S3 存储桶和 DynamoDB 表,则需反向执行这两步:
1. 进入 Terraform 代码,移除后端配置,重新运行 terraform init 将 Terraform 状态复制回本地磁盘。
2. 运行 terraform destroy 删除 S3 存储桶和 DynamoDB 表。
虽然这个两步流程有
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



