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

时间:2016-10-05 13:47:04

标签: git version-control terraform

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

  1. .tfstate文件,它是一个包含状态的json文件。我可以为此审查这个问题。
  2. .tfstate备份,我很确定我可以.gitignore。
  3. modules目录,其中包含指向模块的链接。
  4. 如果我使用local modulesterraform 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并要求所有开发人员terraform get随时git pull运行吗?

1 个答案:

答案 0 :(得分:9)

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

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

事实上,terraform get的上述文档明确建议您不要将该文件夹提交给源代码控制:

  

将模块下载到本地.terraform文件夹中。这个文件夹   不应该承诺版本控制。