运行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上工作。
谢谢!
答案 0 :(得分:4)
我不知道您是否解决了您的问题,但我遇到了同样的问题然后解决了。分享答案,以防其他人需要帮助。
作为参考,我遇到了这个问题
错误来自文件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")
}
这将导致在路径中列出的所有文件夹中搜索具有所提供名称(在本例中为git
)的文件。我创建并执行了一个执行相同调用的go脚本,它的行为符合预期,找到git时没有错误。
此后,我从snap卸载了terraform并直接从Hashicorp网站下载了可执行文件。当我运行仍为v0.11.11
的可执行文件版本时,它没有任何问题。这使我相信该错误与snap如何运行可执行文件或快照安装的应用程序周围的权限模型有关。
TL; DR: 卸载Terraform的快速安装版本,然后下载并使用Hashicorp二进制文件。
答案 1 :(得分:0)
对于github.com项目,要通过SSH克隆,请使用
格式如下:
module "consul" {
source = "git@github.com:hashicorp/example.git"
}
对于任意Git存储库,请使用特殊的git ::前缀
module "storage" {
source = "git::ssh://username@example.com/storage.git"
}
此外,请验证Config ~/.ssh/config
对于您的github帐户是否正确:
希望这会有所帮助。
答案 2 :(得分:-1)
卸载 Terraform 的 snap 安装版本,然后下载并使用Hashicorp二进制文件。