【问题标题】:Terraform couldn't download GIT repositoryTerraform 无法下载 GIT 存储库
【发布时间】:2018-08-27 16:30:39
【问题描述】:

我有企业 GIT 和一个名为“Terraform”的公共存储库。我使用了下面的配置文件,并在执行路径下创建了一个名为“jaish”的文件夹。但是在以

身份运行 init 时收到错误消息
"Error downloading modules: Error loading modules: error downloading 'https://github.XXX.com/<<user>>/Terraform': XML syntax error on line 34: expected element name after <"

provider "github" {
token        = "XXXXXX"
}
module "jaish"{
  source = "https://github.xxx.com/<<user>>/Terraform"
}

这里有什么遗漏吗?

【问题讨论】:

  • 为什么要在这里定义github 提供者?这用于管理 Github 上的团队和存储库等,而不是用于下载项目。而且我认为您只想在此处删除 https:// 前缀。 Terraform 默认使用 HTTPS 克隆 Github 链接,但您可以使用 git@github.com:hashicorp/example.git 使用 SSH 克隆 repo。如果您使用的是 Github Enterprise(域建议如此),那么您需要使用 Generic Git sourcing syntax
  • 仅限企业,我点击了您分享的最后一个链接。所以现在我在 .tf 中将此内容添加为“模块“consul”{ source =“git::github.XXX.com/user/Terraform.git”}”并收到错误为“下载模块时出错:加载模块时出错:模块 Terraform:未找到 Terraform 配置文件目录:.terraform\modules\00850326e3a1a85943eb26336ebc73d7"。我想我错过了模块“consul”的一些东西。我把它理解为 terraform 执行路径下的子文件夹....我需要为这个模块做任何额外的事情吗?

标签: git terraform terraform-template-file


【解决方案1】:

根据错误消息,您似乎是在 Github URL 中使用 &lt;&lt;user&gt;&gt; 进行测试,而不是真正的合法用户。

【讨论】:

  • 那里有实际用户。但我只是注意到文件已经从 git 下载了,但错误消息正在显示。即使从 git 下载后,也不确定它在期待什么。我在 git 源下载路径中添加了一个空白 .tf 文件,此错误消失了。但我无法将所有这些与实际错过的引发此错误的内容联系起来?
  • TF 调试级日志记录显示什么?在 sh/bash 中启用它:export TF_LOG=DEBUG export TF_LOG_PATH=/tmp/tf.debug.txt
  • 抱歉,我在 Windows cmd 中运行它。我将尝试通过 windows 命令提示符启用它。
  • 这里分为 2 cmets "2018/04/12 16:17:36 [INFO] Terraform 版本:0.11.3 3802b14260603f90c7a1faf55994dcc8933e2069 2018/04/12 16:17:36 [INFO] Go 运行时版本:go1.9.1 2018/04/12 16:17:36 [INFO] CLI args: []string{"D:\\JAISH\\TERRAFORM\\terraform.exe", "init"} 2018/04 /12 16:17:36 [DEBUG] 尝试打开 CLI 配置文件:C:\Users\jmathews4\AppData\Roaming\terraform.rc 2018/04/12 16:17:36 [DEBUG] 文件不存在,但不需要。忽略。”........
  • ....... 2018/04/12 16:17:36 [INFO] CLI 命令参数:[]string{"init"} 2018/04/12 16:17 :36 [DEBUG] 命令:加载后端配置文件:D:\JAISH\TERRAFORM 2018/04/12 16:17:36 [DEBUG] 插件:等待所有插件进程完成...
【解决方案2】:

试试这个:

如下定义你的模块(不需要指定github提供者,并确保你可以通过ssh访问你的github存储库)

module "jaish"{
  source = "git@github.xxx.com:<<user>>/Terraform.git?ref=master"
}

运行terraform init,如果错误仍然存​​在,可能会通知我。

【讨论】:

  • Paht "D:\JAISH\TERRAFORM" 用于在本地运行 terraform,错误显示为 下载模块时出错:加载模块时出错:下载文件时出错://D:/JAISH/TERRAFORM/git @github.XXX.com:>/Terraform.git?ref=master': 源路径错误: CreateFile D:/JAISH/TERRAFORM/git@github.XXX.com:>/Terraform. git:文件名、目录名或卷标语法不正确。
猜你喜欢
  • 2012-06-10
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
相关资源
最近更新 更多