terraform - Terraform 模块子目录放置
问题描述
我是 terraform 的新手,我正在考虑编码新环境的最佳结构。
假设我的每个环境 dev、staging 和 production 都有一个根目录。
我想知道是否最好将模块目录定位为根目录之外的子目录,或者将模块目录定位在与根目录相同的级别。
官方指南将模块目录显示为每个根目录下的子目录(即,一个用于开发的模块目录,另一个用于暂存等),但这使得共享每个环境的模块变得困难。这似乎是官方的建议,虽然https://www.terraform.io/docs/modules/index.html
你通常在你的仓库中的哪里有内部模块?
问候肖恩
解决方案
我们尽量不创建“内部”模块,因为它们不能跨 repos 重用,因此我们使用 git 源而不是文件系统源。我觉得这种方法更好,因为
- 模块不绑定到单个存储库
- 您可以版本化您的模块和来源特定的参考
从 git 获取模块时,您只需为每个模块创建一个新的存储库。然后你可以用你的模块文件保持干净
- 主文件
- 变量.tf
- 输出.tf
- 版本.tf
其中versions.tf 用于固定模块所需的Terraform 核心和提供程序版本。
IE
terraform {
version = "= 0.12.9"
required_providers {
aws = ">= 2.7.0"
}
}
推荐阅读
- javascript - 使用 select() 复制值并复制
- python - Python-如何检查一个单词是否有小写和大写
- javascript - 使用 jquery/ajax 动态填充下拉列表
- vb6 - VB6 从 Recordset 插入表
- node.js - 来自点击的 AJAX 调用失败
- .htaccess - RewriteRule htaccess 不适用于长参数
- android - 在使用 Espresso 进行测试时,如何登录我的应用程序一次然后执行所有测试套件?目前,每次测试都会重新启动应用程序
- shell - 使用 zsh 时,preexec: parse error in zsh?
- php - 如何在 PHP 中生成带有特定字母的 ID 并添加数字?
- reactjs - 在同一个函数 React 中处理 onClick 和 onKeyPressDown