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



Terraform可能会在. Terraform目录下创建一些文件。

  1. .tfstate文件,这是一个包含状态的json文件。我可以复习一下这个问题。
  2. 。状态备份,我很确定我可以。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

所有这些文件都在同一个repo中。当一个同事克隆这个repo时,他注意到运行terraform get会产生新的符号链接,即使模块没有改变。

我是否应该将。terraform/modules目录添加到。gitignore,并要求所有开发人员在git pull时运行terraform get ?

我们完全忽略了整个.terraform文件夹。

是的,这确实意味着你需要在每个动作之前运行一个terraform get,但通常当你作为团队的一部分工作时,你会想要在帮助脚本中包装你的Terraform动作,可以做到这一点,以及为你管理远程状态。

事实上,上述terraform get的文档明确建议您不要将文件夹提交到源代码管理:

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

最新更新