我想设置 Terraform 来管理开发/阶段/产品环境。所有环境中的基础设施都是相同的,但每个环境中的变量都存在差异。
既然 Terraform 0.10 中引入了工作区,那么理想的 Terraform 项目结构是什么样的?在命名/标记基础设施时如何引用工作区?
我不建议在静态环境中使用工作区(以前的“环境”),因为它们会增加相当多的复杂性并且更难以跟踪。
您可以对所有环境使用单一文件夹结构,使用工作空间来分隔环境,然后使用基于工作空间的条件值来设置差异。在实践中(尤其是在超过 2 个环境导致嵌套三元语句的情况下),您可能会发现这很难管理。
相反,我仍然主张每个静态环境都有单独的文件夹并使用符号链接使所有 .tf 文件在所有环境中保持相同,并使用 terraform.tfvars 文件来提供每个环境中的任何差异。
我会推荐用于动态环境的工作空间,例如短期审查/实验室环境,因为这提供了很大的灵活性。我目前正在使用它们在 Gitlab CI 中创建审核环境,以便每个分支都可以有一个可选部署的审核环境,可用于手动集成或探索性测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)