使用bitbucket存储库处理ssh / https auth作为模块源

问题描述 投票:1回答:1

我正在尝试使用Terraform模块,我在BitBucket中的专用私有模块存储库中使用了该模块。我在BitBucket中有一个应用程序存储库,其中有Terraform模板,它们使用模块存储库中的模块。当我检查应用程序存储库的更改时,它将触发BitBucket管道。

当BitBucket管道在我的应用程序存储库上运行时,其中的Terraform模板将我的模块存储库作为模板使用的模块的源。管道运行terraform init失败,因为Pipeline需要输入模块源存储库的密码。我见过人们使用git credential helper存储凭据,但这似乎是缓存先前输入的凭据的解决方案。在这个解决方案中情况并非如此,因为这是一个Docker映像,以前没有我的git凭据缓存在它上面。

我也花了很多时间试图让ssh使用它。我已经在我的app存储库上生成了公共/私有ssh密钥,给出了我的模块存储库的公钥,然后将模块源设置为我的ssh git路径。 Terraform无法弄清楚存储库路径,告诉我它不是一个有效的存储库。

下载模块时出错:加载模块时出错:下载'ssh://[email protected]:foo / bar.git'时出错:C:\ Program Files \ Git \ cmd \ git.exe退出128:克隆到'.terraform \ modules \ f169a1ea8d4eb404'... ssh:无法解析主机名bitbucket.org:foo:名称或服务未知致命:无法从远程存储库读取。

请确保您具有正确的访问权限并且存储库存在。

使用ssh时我尝试将源设置为git::ssh://[email protected]:foo/bar.gitgit::[email protected]:foo/bar.git。每次我被告知这不是一个有效的存储库时,主机名是未知的,并且无法获得授权。我还在bitbucket.org路径下的Windows上将known_hosts添加到我的$HOME/.ssh文件中。我不确定SSH密钥是否正确使用,或者Terraform是否无法找出BitBucket存储库路径。

我宁愿通过HTTPS /缓存凭据进入SSH路由,但即使我在Windows机器上本地运行'terraform init',我也无法使其工作。所以我想从那里开始,我在Windows上需要做些什么来让Terraform使用SSH作为模块源来使用BitBucket存储库?

git ssh bitbucket terraform bitbucket-pipelines
1个回答
0
投票

我不确定SSH密钥是否正确使用,或者Terraform是否无法找出BitBucket存储库路径

在将环境变量GIT_SSH_COMMAND设置为ssh -v之后,尝试再次启动所有进程:它将显示用于ssh会话的密钥。 注意:ssh://[email protected]:foo/bar.git错了:它应该是ssh://[email protected]/foo/bar.git

© www.soinside.com 2019 - 2024. All rights reserved.