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

9

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

所有这些文件都在同一个仓库中。当同事克隆了该仓库时,他注意到运行terraform get会导致新的符号链接,即使模块没有更改。
我应该将.terraform/modules目录添加到.gitignore中,并要求所有开发人员每次git pull后运行terraform get吗?
1个回答

18
我们完全忽略整个.terraform文件夹。
是的,这确实意味着您需要在每个操作之前运行terraform get,但通常在团队合作时,您会希望将Terraform操作包装在助手脚本中,以便为您管理远程状态,并自动运行此命令。
实际上,上述的terraform get文档明确建议您不要将该文件夹提交到源代码控制中:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接