我们正在使用 AzureDevops 服务器,并使用预构建任务自动化管道变量组和变量创建,该任务将运行下面的 bash 脚本并将变量和变量组一起生成
由于它是敏感信息,我们需要隐藏此变量值,因此遇到了有关秘密 vraiable 的文章。但是它确定我们不能使用与我们一起使用 VG 和变量作为秘密的相同 az 命令变量创建,需要通过其组 ID 调用现有创建的 VG,并且需要传递秘密值作为第二步。
所以我面临的问题是
在我当前的 bash 脚本中,我们使用以下命令一起创建变量组和变量。
az pipelines variable-group create --project=myproject --name $variable_group_name --authorize true --variables mynKey=$my_key
因此,如果我想将其拆分为命令,则不确定如何获取创建的变量组的组 ID。
az pipelines variable-group create --project=$projectname --name $variable_group_name --authorize true
az pipelines variable-group variable create --group-id <?????> --name myKey --project=$projectname --secret true --value $my_key
$group_id = $(az pipelines variable-group list -p $(System.TeamProject) --group-name "variable_group_name" --query '[0].id' -o json)
这会将变量组 id 提取到 $group_id 变量中
如果变量组不存在,则上面将简单地返回空结果
在 Azure DevOps CLI(
az pipelines variable-group create
) 的响应中,它可以包含创建的变量组 ID。
您可以直接在 CLI 响应中获取 ID。
这是一个例子:
ID=$(az pipelines variable-group create --org "https://dev.azure.com/xx/" --project "azure" --name "xx" --authorize true --variables "key=value" --query 'id' -o json)
echo $ID
您还可以使用logging命令将Groupid设置为Pipeline变量。
echo "##vso[task.setvariable variable=GroupID]$ID"
这里是关于 在 CLI 响应中获取值的文档。
您还可以在 Azure 网站上打开组时从 URL 中获取变量:
https://dev.azure.com/myorg/project/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=175&path=some-var-group
这里 URL 参数
variableGroupId
为我们提供了变量 id 175
。