我在运行 terraform init/get 时遇到问题。
我得到的错误:
Error downloading modules: Error loading modules: error downloading 'ssh://git@github.com/etc etc': git must be available and on the PATH
github 路径正确,在另一台机器上工作正常。
Git 工作正常,它也在 PATH 中。 TF_LOG 为空。 在 ubuntu 上工作。
谢谢!
最佳答案
我不知道你是否解决了你的问题,但我遇到了同样的问题,然后解决了。分享答案以防其他人需要帮助。
作为引用,我遇到了这个问题
- Ubuntu 18.04
- Linux Ubuntu 4.15.0-45-generic
- 通过 Snap 安装的 Terraform v0.11.11 Rev 216
错误来自文件 terraform/vendor/github.com/hashicorp/go-getter/get_git.go
Get
函数。该函数尝试的第一件事是以下调用
if _, err := exec.LookPath("git"); err != nil {
return fmt.Errorf("git must be available and on the PATH")
}
这会导致 go 搜索路径中列出的所有文件夹以查找具有所提供名称的文件,在本例中为 git
。我创建并执行了一个进行相同调用的 go 脚本,它的行为符合预期,发现 git 没有错误。
在此之后,我从 snap 中卸载了 terraform,并直接从 Hashicorp 网站下载了可执行文件。当我运行仍然是 v0.11.11
的那个版本的可执行文件时,它运行没有问题。这使我相信该错误与 snap 运行可执行文件的方式或围绕 snap 安装的应用程序的权限模型有关。
长话短说: 卸载 Terraform 的快照安装版本,而是下载并使用 Hashicorp 二进制文件。
关于git - terraform init 失败 - git 必须可用并且在 PATH 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54406076/