不确定这个问题会有正确或错误的答案,但我只是对人们如何在现实世界中管理Terraform感兴趣?在使用模块,不同环境和协作方面。
目前我们正计划建立生产,开发和测试环境。全部相似。
现在,我已经以定义AWS的各个组件的方式创建了我的terraform文件,所以说一个用于,VPC,IAM,EC2,监控(CloudWatch + CloudTrail + CloudConfig)等。并且有一个变量文件和.tfvars以上,所以文件是可移植的(所有环境都是相同的)。所以,如果你需要在一个地方改变一切。还意味着如果我们有一个特定的项目正在运行,我可以创建一个定义项目所有资源的tf文件并将其放入,然后一旦完成删除它。
每个环境在我们的Terraform服务器上都有自己的文件夹结构。
这太简单了吗?我一直在看模块。
也有人有与Terraform合作的经验,就像在不同的团队中一样吗?我一直在寻找像亚特兰蒂斯这样的东西与GitHub结合,所以任何变化都需要得到批准。但同时也有正确的IAM角色,我可以限制Terraform可以改变的内容。
就像我说的那样,对于人们如何管理terraform及其体验感兴趣的答案可能并不错。
由于
答案 0 :(得分:0)
我的回答只是一个用例...
我们正在将terraform
用于为几个客户提供的应用程序,每个客户都具有小的特定配置功能。</ p>
我们只有一个VCS存储库。我们不使用VCS分支机构。
对于每个文件夹,我们至少具有远程状态,以便在开发人员之间共享状态。
我们主要使用变量来减少每个客户文件夹中特定文件的数量。
希望这对您有帮助...