我正在尝试使用一个Terraform模块,它位于BitBucket中的专用私有模块存储库中。我在BitBucket中有一个应用程序存储库,其中有Terraform模板,它使用模块存储库中的一个模块。当我签入对应用程序存储库的更改时,它会触发BitBucket管道。
terraform init
这将失败,因为管道需要输入模块源存储库的密码。我见过有人使用git credential helper来存储凭据,但这似乎是一个缓存以前输入的凭据的解决方案。在这个解决方案中不会出现这种情况,因为这是一个Docker映像,以前不会缓存我的git凭据。
下载模块时出错:加载模块时出错:下载“ssh://git@bitbucket.org:foo/bar.git”时出错:C:\ Program Files\git\cmd\git.exe已退出,其中128个:克隆到“.terraform\modules\f169a1ea8d4eb404”。。。
致命:无法从远程存储库读取。
请确保您拥有正确的访问权限
当使用ssh时,我尝试将源设置为
git::ssh://git@bitbucket.org:foo/bar.git
和
git::git@bitbucket.org:foo/bar.git
. 每次我被告知这不是一个有效的存储库时,主机名都是未知的,无法对其进行授权。我还添加了
bitbucket.org
给我的
known_hosts
$HOME/.ssh
路径。我不确定SSH密钥是否被正确使用,或者Terraform是否无法确定BitBucket存储库的路径。
我更喜欢使用SSH路由,而不是HTTPS/cached凭据,但是我无法让它正常工作,即使我在我的Windows机器上本地运行'terraform init'。所以我想从这里开始,我需要在Windows上做什么才能让Terraform使用一个以SSH作为模块源的BitBucket存储库?