【问题标题】:Azure DevOps Deployment to Multiple SubscriptionAzure DevOps 部署到多个订阅
【发布时间】:2021-05-25 10:49:00
【问题描述】:

​各位专家, 我一直在尝试寻找答案,Azure DevOps 能否支持部署到具有不同 Azure AD 租户的多个 Azure 订阅?

【问题讨论】:

  • 我认为应该只创建服务连接并使用它们

标签: azure-devops


【解决方案1】:

答案是肯定的。您可以在 Azure devops 中部署到多个 Azure 订阅。您只需在 Azure devops 中为这些 Azure 订阅创建多个 Azure 资源管理器服务连接。

查看文档至Create an Azure Resource Manager service connection with an existing service principal

您首先需要在每个 Azure 订阅中创建一个服务原则。请参阅下面的教程。

Use the portal to create an Azure Active Directory application and a service principal that can access resources

或者 Create an Azure service principal with Azure PowerShell

然后转到 Azure devops 项目设置-->服务连接-->新建服务连接-->选择 Azure资源管理器-->选择Service principal (manual)作为Authentication method-->输入Subscription Id、Service Principal Id(client id)、Service principal key(client secret)和tenant上面创建的服务主体的 id。

然后,您可以在管道中的 azure 部署任务中选择要部署到的 azure 订阅。

【讨论】:

  • 感谢 levi,只是为了确保这可以跨多个 Azure AD 租户工作
【解决方案2】:

只需添加一个额外的任务(或任意数量的订阅的任意数量的任务)。

例如,假设您有两个服务连接(在您的项目设置中已经设置了必要的订阅级别或应用级别或资源级别权限)。

另外,我假设您已经知道如何创建服务连接并在您的项目中使用它,以及部署一个简单的网络应用程序。

  • ServiceConnectionForFirstSubscription1
  • ServiceConnectionForFirstSubscription2

您的 YAML(同样,假设您使用的是 YAML)看起来像这样

- task: AzureWebApp@1
  inputs:
    displayName: 'deploying to first subscription'
    azureSubscription: 'ServiceConnectionForFirstSubscription1'
    appName: 'ReactJSRecipeAppSep232020'
    package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'  

- task: AzureWebApp@1
  inputs:
    displayName: 'deploying to second subscription'
    azureSubscription: 'ServiceConnectionForFirstSubscription2'
    appName: 'ReactJSRecipeAppSep232020'
    package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' 

注意 - 检查 Levi Lu-MSFT 的答案,如果您不知道如何创建服务连接,请查看链接。

【讨论】:

    【解决方案3】:

    我尝试了 Levi Lu-MSFT 发布的教程,但 Azure AD 方面的步骤和术语与 Azure DevOps 想要的领域之间仍然存在很多脱节。我发现以下链接中的步骤可以使头痛最小化。实验室会告诉你哪些 Azure 服务主体字段是 DevOps 需要的字段。

    https://azuredevopslabs.com/labs/devopsserver/azureserviceprincipal/

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 2016-05-07
      相关资源
      最近更新 更多