1

下面给出的源定义适用于 terraform 模块,但它有一个 PAT TOKEN。在本地 VM 以及 Azure Pipelines 上运行良好。这个问题是关于如何定义 terraform 模块的源定义但没有硬编码 PAT TOKEN

代码的工作副本:

source = "git::https://<PAT TOKEN>@<AZURE DEVOPS URL>/DefaultCollection/<Project Name>y/_git/terraform-modules//<sub directory>"

我尝试了以下方法:

    git::https://<AZURE DEVOPS URL>/DefaultCollection/<Project Name>/_git/terraform-modules.git//<sub directory>

这给了我如下错误:

"git::https://<AZURE DEVOPS URL>/DefaultCollection/<Project Name>/_git/terraform-modules":
error downloading
'https://<AZURE DEVOPS URL>/DefaultCollection/<Project Name>/_git/terraform-modules':
/usr/bin/git exited with 128: Cloning into
'.terraform/modules/resource_group'...
fatal: could not read Username for 'https://<AZURE DEVOPS URL>':
terminal prompts disabled

添加了没有域部分的我的用户名,如下所示:

source                  = "git::https://<USERNAMEM@<AZURE DEVOPS URL>/DefaultCollection/<PROJECT NAME>/_git/terraform-modules.git//compute"

以下错误:

"git::https://<USERNAME>@<AZURE DEVOPS>/DefaultCollection/<PROJECT>/_git/terraform-modules.git":
error downloading
'https://<USERNAME>@<AZURE DEVOPS>/DefaultCollection/<PROJECT>/_git/terraform-modules.git':
/usr/bin/git exited with 128: Cloning into '.terraform/modules/sql_vms'...
fatal: could not read Password for
'https://<USERNAME>@<AZURE DEVOPS>': terminal prompts disabled

当构建管道即使不指定用户名和密码也可以进行结帐时,为什么我们必须在 terraform 代码中提及。

Azure Pipeline Agent 具有 git 凭据。不确定如果没有 PAT 令牌,这是否会起作用?

4

1 回答 1

0

看看这个 -是否可以使用默认的 Windows 凭据以非交互方式对远程 Git 存储库进行身份验证?

因此,在我们的案例中,我们发现git config --global http.emptyAuth true在 terraform 之前运行可以解决问题。:@不需要该业务,除非您的 terraform 模块存储库是 LFS 存储库。但这不是我们的情况,所以我们不需要它。

于 2020-04-19T00:26:02.827 回答