我应该版本.terraform文件夹吗?

时间:2019-12-11 15:24:50

标签: terraform

我开始使用Terraform,我有一个.terraform文件夹,由“ terraform init / apply”创建,其中包含:

  • ./ plugins / linux_amd64 / lock.json
  • ./ plugins / linux_amd64 / terraform-provider-google
  • ./ plugins / modules / modules.json
  • terraform.tfstate

我应该对这些文件进行版本控制吗?我会说不...

1 个答案:

答案 0 :(得分:3)

.terraform目录是本地缓存,Terraform会在其中保留一些文件,这些文件将需要对该文件进行后续操作。它的内容不打算包含在版本控制中。

但是,您可以通过在配置中指定某些信息来告知您Terraform将放置在其中的内容,以确保可以在其他系统上忠实地复制此目录:

  • required_providers块中使用terraform为Google Cloud Platform提供程序指定确切的版本约束:

    terraform {
      required_providers {
        google = "3.0.0"
      }
    }
    

    (与.terraform/plugins目录有关)

  • 在您调用的每个模块中(到目前为止,似乎还没有,但也许将来),请确保其source引用的是确切版本而不是浮动分支(对于VCS模块),或者将version设置为精确版本(对于Terraform Registry中的模块):

    module "example"
      source = "git::https://github.com/example/example.git?ref=v2.0.0"
      # ...
    }
    
    module "example"
      source  = "hashicorp/consul/aws"
      version = "v1.2.0
    }
    

    (与.terraform/modules目录有关)

  • 如果使用的是远程后端,请在backend块内的terraform块中包含完整配置,而不要在{{1}中使用-backend-config参数}。

    (这与terraform init文件有关,该文件会记住您的活动后端配置以用于以后的操作)