从本地源调用模块时一切正常,但是我决定重构Terraform代码以将git存储库用于模块。
我在BitBucket帐户中创建了一个名为terraform-modules的新存储库,并将模块的source属性重构为具有以下结构:
source = "git::ssh://git@bitbucket.org:carepaydev/terraform-modules.git//modules/iam/iam_roles/assumable_role"
致电terraform init
时出现以下错误:
Error downloading modules: Error loading modules: error downloading 'ssh://git@bitbucket.org:<username>/terraform-modules.git': /usr/local/bin/git exited with 128: Cloning into '.terraform/modules/caf541f5e5ccbb1d204bce3b94091014'...
ssh: Could not resolve hostname bitbucket.org:<username>: nodename nor servname provided, or not known
fatal: Could not read from remote repository.
使用git clone克隆存储库确实可行。我尝试将TF_LOG
的环境变量设置为TRACE
,以查看是否可以为我提供更多的见识,但这无济于事。
任何线索为何失败?
答案 0 :(得分:2)
将ssh://git@bitbucket.org
和username/repo
之间的冒号更改为斜杠:
ssh://git@bitbucket.org/username/repo
以这种格式,冒号表示备用端口-如果您想执行ssh://git@altssh.bitbucket.org:443/username/repo
,则很有用,类似于为其他协议(例如HTTP)指定备用端口的方式。
答案 1 :(得分:0)
尝试访问私有存储库时,您在hashicorp/terraform issue 12696上遇到类似的错误。
至少,请尝试设置git config --global core.sshCommand "ssh -Tvv"
,以查看git clone
进程中Terraform durong实际使用了什么私钥。