Azure devops 从pipeline.yaml中的服务连接导出ARM_CLIENT_ID和ARM_CLIENT_SECRET
我已经创建了将现有Azure资源导入terraform的管道。由于Terraform导入需要提供程序详细信息或环境变量,因此必须从服务连接提取以下详细信息Azure devops 从pipeline.yaml中的服务连接导出ARM_CLIENT_ID和ARM_CLIENT_SECRET,azure-devops,Azure Devops,我已经创建了将现有Azure资源导入terraform的管道。由于Terraform导入需要提供程序详细信息或环境变量,因此必须从服务连接提取以下详细信息 steps: - task: AzureCLI@2 displayName: Terraform Init inputs: azureSubscription: ${{ parameters.service_connection }} addSpnToEnvironment: true scriptType:
steps:
- task: AzureCLI@2
displayName: Terraform Init
inputs:
azureSubscription: ${{ parameters.service_connection }}
addSpnToEnvironment: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
export ARM_CLIENT_ID=$servicePrincipalId
export ARM_CLIENT_SECRET=$servicePrincipalKey
export ARM_SUBSCRIPTION_ID=$(az account show --query id | xargs)
export ARM_TENANT_ID=$(az account show --query tenantId | xargs)
ls
terraform init -upgrade -input=false \
-backend-config="subscription_id=${{ parameters.tf_state_subscription_id }}" \
-backend-config="tenant_id=$tenantId" \
-backend-config="client_id=$servicePrincipalId" \
-backend-config="client_secret=$servicePrincipalKey" \
-backend-config="resource_group_name=${{ parameters.resource_group_name }}" \
-backend-config="storage_account_name=${{ parameters.storage_account_name }}" \
-backend-config="container_name=${{ parameters.tf_state_key }}" \
-backend-config="key=${{ parameters.tf_state_key }}.tfstate"
if [ $(az resource list --name pytestkeyvault --query '[].id' -o tsv) != null ]
then
echo "using Keyvault $(az resource list --name pytestkeyvault --query '[].id' -o tsv)"
terraform import azurerm_key_vault.this $(az resource list --name pytestkeyvault --query '[].id' -o tsv)
else
echo "Keyvault does not exist"
fi
echo $ARM_CLIENT_ID
导出的环境变量ARM\u CLIENT\u ID为空。以下变量未作为环境变量导出
echo$ARM\u客户端\u ID
echo$ARM\u客户端\u机密
echo$ARM\u订阅\u ID
echo$ARM\u TENANT\u ID尝试使用系统变量$env:servicePrincipalId、$env:servicePrincipalKey、$env:tenantId获取SPN详细信息。尝试使用系统变量$env:servicePrincipalId、$env:servicePrincipalKey、$env:tenantId获取SPN详细信息。对于我的设置,我无法从azure powershell访问服务主体。 但我可以从Azure CLI 这篇文章为我指明了正确的方向,请查看:
对于我的设置,我无法从azure powershell访问服务主体。 但我可以从Azure CLI 这篇文章为我指明了正确的方向,请查看:
您可以尝试改用
$env:servicePrincipalId
。你可以参考类似的问题。没有得到你的最新信息,解决方法对你有帮助吗?或者,如果您有任何问题,请随时在此处分享。您可以尝试改用$env:servicePrincipalId
。你可以参考类似的问题。没有得到你的最新信息,解决方法对你有帮助吗?或者如果你有任何问题,请在这里分享。