1

我将 Terraform 与 A​​WS 和 S3/Dynamo 一起用于我们所有模块的远程状态。这很好用而且很棒。

但是您要在哪里保存模块的状态文件,在哪里创建 S3 存储桶和 DynamoDB(用于远程状态)?

这听起来像是一个“鸡还是蛋”的问题。我是否应该将状态文件上传到 GIT 存储库,即使我不应该将它存储在那里?

通常这个状态不再被触及,但是如果所有开发者都可以访问这个状态会更干净,不是吗?你的最佳实践是什么?

4

2 回答 2

2

永远不应该将状态文件上传到任何存储库。这是一个先有鸡还是先有蛋的问题。您首先必须部署 S3 和 DynamoDB,这将创建一个本地状态文件。然后,由于您有一个 S3 存储桶,您可以添加后端配置块 [1]。这之后应该terraform init会询问您是否要将状态迁移到远程后端 [2] 就是这样。之后,您将在 S3 存储桶中保存状态文件。

更多信息在这里:

[1] https://www.terraform.io/docs/language/settings/backends/s3.html#example-configuration

[2] https://www.terraform.io/docs/language/settings/backends/configuration.html#initialization

于 2021-10-26T08:52:52.793 回答
0

这就引出了一个问题,如果您需要销毁/重建您的状态存储桶/DDB,会发生什么?

使用存储桶和 DDB 手动配置严格控制的主帐户是一种更明智的方法。从那里你有一个基础来创建一个帐户自动售货机来设置具有状态存储桶、DDB、基线配置和 IAM 等的新帐户。

于 2021-10-26T09:13:07.893 回答