如何解决私有git repo中的Terraform模块
我已经在私有gitlab存储库中创建了terraform模块。 另一个仓库中的terraform资源需要使用此模块。
module "my_module" {
source = "git::https://gitlab.example.com/my-repo.git"
}
这在本地有效,但不在我们的CI管道中,因为它需要用户名和密码。所以我生成了一对并尝试了这个:
module "email_sns" {
source = "git::https://${var.username}:${var.password}@gitlab.example.com/my-repo.git"
}
这不起作用,因为terraform不允许source
中的变量。
剩下的唯一选择,afaik是使用git credential helper并向其中添加用户名和密码。
但是store
助手将它们存储为纯文本。我不要这个
我可以看到可以使用cache
作为帮助程序,但是如何在CI中将用户名和密码存储到其中呢?
还是有解决此问题的替代方法?
解决方法
您必须为此使用ssh键。使用terraform
模块在存储库中创建新密钥,然后将此密钥添加到执行该模块的运行程序中。您可以找到有关如何创建ssh密钥on Gitlab documentation page
这也意味着,您应该将源字符串从https
切换到ssh
,以使其正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。