首页 > 解决方案 > 在 CLI 任务中使用服务连接?

问题描述

在运行 BASH 或 Azure CLI 等 CLI 任务时,Azure Devops 如何公开服务连接详细信息?

假设我有一个诸如 Packer 或 Terraform 之类的工具,并且我想运行使用服务连接针对 azure 进行身份验证的任务。

是否有一些带有我可以读取和使用的 clientid + secret 的文件?还是一些系统变量?

还是我需要遵循某种托管身份认证流程?

我知道我可以通过变量提供这些细节,但我试图避免这种情况,理想情况下我想要一种简单的方法来利用已经创建的服务连接。

标签: azure-devops

解决方案


好吧,我不敢相信我刚刚发现了这个。不确定这个选项有多新,但是......如果你检查 Azure CLI 市场任务并查看高级选项,你会看到:

在此处输入图像描述

因此,例如,要将其与 Terraform 一起使用,您可以执行以下操作:

export ARM_CLIENT_ID=$servicePrincipalId
export ARM_CLIENT_SECRET=$servicePrincipalKey
export ARM_SUBSCRIPTION_ID=`az account show -o json | jq .id`
export ARM_TENANT_ID=`az account show -o json | jq .tenantId`

推荐阅读