我开始使用Terraform,我有一个.terraform文件夹,由“ terraform init / apply”创建,其中包含:
我应该对这些文件进行版本控制吗?我会说不...
答案 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
文件有关,该文件会记住您的活动后端配置以用于以后的操作)