使用 git::ssh://git@ 作为模块源时,Gitlab 管道中的 Terragrunt/-form 克隆

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

我有一个管道,我想在其中运行 terragrunt。到目前为止,我在本地运行所有内容并使用 ssh 对 Gitlab 进行身份验证。因此,在我的 Terraform 模块中,我还使用如下所示的 git::ssh URL。

module "data_org" {
  source = "git::ssh://[email protected]/bar/xdf/terraform_modules.git//modules/data_org?ref=develop"
}

现在,我不知道如何将其移植到 Gitlab 管道。我更喜欢使用短期管道凭据,例如 Gitlab 作业令牌,但不知道如何使用它。有人知道如何将其与 Terraform 一起使用吗?

我已经遇到过:

更新 2023-10-26 https: 我测试了

git config --global url.https://gitlab-ci-token:${CI_JOB_TOKEN}@git.foobar.de.insteadOf ssh://[email protected]
并取得了进一步的进展。现在我收到存储库的“未找到”错误,我认为问题出在末尾的
.git
后缀。我还不知道如何摆脱它,但希望这是可以解决的。

authentication terraform gitlab gitlab-ci-runner terragrunt
1个回答
0
投票

感谢@harshavmb

解决方案是双重的

  • a) 使用
    git config --global url.https://gitlab-ci-token:${CI_JOB_TOKEN}@git.foobar.de.insteadOf ssh://[email protected]
    ,我的 ssh URL 被重写为 HTTP URL,并使用 Gitlab 作业令牌进行身份验证。
  • b)允许访问需要从目标存储库端进行。这意味着我想克隆存储库 A,但我的管道和作业令牌位于存储库 B 中。为了允许访问,我必须允许存储库 A 中的访问,以便 B 可以“访问”它。设置位于设置 -> CI/CD -> 令牌访问下。
© www.soinside.com 2019 - 2024. All rights reserved.