下面给出的源定义适用于terraform模块,但它有一个PAT标记。在本地VM和Azure Pipeline上都能正常工作。这个问题是关于如何定义terraform模块的源定义,但不对PAT令牌进行硬编码
代码的工作副本:
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管道代理具有git凭据。如果没有PAT令牌,我不确定这是否会起作用?
发布于 2020-04-19 08:26:03
因此,在我们的例子中,我们发现在terraform之前运行git config --global http.emptyAuth true就可以解决这个问题。不需要:@业务,除非您的terraform模块存储库是一个LFS代码库。但这不是我们的情况,所以我们不需要它。
https://stackoverflow.com/questions/59298769
复制相似问题