Terraform模块子目录放置

时间:2019-09-28 19:24:03

标签: terraform

我是terraform的新手,我正在考虑为新环境编写代码的最佳结构。

比方说,我为我的每个环境dev,登台和生产环境都有一个根目录。

我想知道最好是将模块目录作为子目录定位在根目录之外,还是将模块目录定位在与根目录相同的级别。

官方指南将模块目录显示为每个根目录下的子目录(即,用于dev的模块目录,用于暂存的另一个目录等),但这使为每个环境共享模块变得困难。尽管https://www.terraform.io/docs/modules/index.html

这似乎是官方建议

您的存储库中通常在哪里放置内部模块?

问候 肖恩

1 个答案:

答案 0 :(得分:0)

我们尽量不要创建“内部”模块,因为它们无法在存储库中重复使用,因此我们使用git源而不是文件系统源。我觉得这种方法更好,因为

  1. 模块未绑定到单个存储库
  2. 您可以对模块进行版本控制,并source specific refs

从git采购模块时,只需为每个模块创建一个新的存储库。然后,您可以使用模块文件保持整洁

  • main.tf
  • variables.tf
  • outputs.tf
  • versions.tf

versions.tf用于固定模块所需的Terraform核心和提供程序版本。

terraform {
    version = "= 0.12.9"
    required_providers {
        aws = ">= 2.7.0"
    }
}