多个开发人员和 Terraform 状态文件

luc*_*axi 5 terraform

我已经自己管理 Terraform 代码几个月了。现在我的团队中有更多的团队成员,我希望他们学习 TF 并使用我现有的代码构建东西。状态文件存储在S3中。对于每个环境,我运行了以下命令。

terraform init -backend=true \
    -backend-config="bucket=acme-dev-tfstates" \
    -backend-config="key=frontendapp.tfstate" \
    -backend-config="region=us-east-1" \
    -backend-config="encrypt=true"
Run Code Online (Sandbox Code Playgroud)

假设我的同事想要为代码做出贡献。他从Github上查看了代码,是否需要再次运行上面的命令?

yda*_*coR 0

是的,你们都需要确保正确配置状态,这样就不会有人在不从 S3 拉取和推送状态的情况下意外地进行更改。

您还应该考虑使用状态锁定(使用 DynamoDB 作为 S3 状态后端),这样就不会出现多人尝试同时更改相同资源的情况,从而可能损坏您的状态文件。

编写自动处理状态配置和拉取模块等的帮助程序脚本可能会有所帮助,这样在正常操作中就不可能不配置状态。