我应该提交还是忽略Terraform本地模块符号链接?

koj*_*iro 3 git version-control terraform

Terraform可能会在.terraform目录中创建一些文件.

  1. .tfstate文件,它是一个包含状态的json文件.我可以为此审查这个问题.
  2. .tfstate备份,我很确定我可以.gitignore.
  3. modules目录,包含模块的链接.

terraform get如果我使用本地模块,该命令将为我的本地模块路径创建符号链接.那些路径名称是哈希,比如

7a1d2376c59a613c3888163f019b98c1@ -> /Users/michael/dev/a-project/terraform/modules/netpart
dc86adf2084ae95b189765d26b75702d@ -> /Users/michael/dev/a-project/terraform/modules/cluster
e03511e017c5612ae4b9e9ebc49d4611@ -> /Users/michael/dev/a-project/terraform/modules/cluster
eb8c48ae43e85626ff456d0a58a6a6a6@ -> /Users/michael/dev/a-project/terraform/modules/netpart
Run Code Online (Sandbox Code Playgroud)

所有这些文件都在同一个仓库中.当一个同事克隆了那个仓库时,他注意到运行terraform get导致了新的符号链接,即使模块没有改变.

我要补充的.terraform /模块目录的.gitignore并要求所有的开发人员运行terraform get任何时候他们git pull

yda*_*coR 9

我们整个gitignore整个.terraform文件夹.

是的,它确实意味着您需要terraform get在每个操作之前运行,但通常在作为团队的一部分工作时,您将希望将Terraform操作包装在可以执行此操作以及为您管理远程状态的帮助程序脚本中.

实际上,以上文档terraform get明确建议您不要将文件夹提交到源代码控制:

这些模块将下载到本地.terraform文件夹中.不应将此文件夹提交给版本控制.