快速入门:使用 ARM 模板创建托管 DevOps 池

本文介绍如何使用 ARM 模板创建托管 DevOps 池,以及如何在新池中运行管道。

先决条件

在完成本文中的步骤之前,必须已配置 Azure 订阅和 Azure DevOps 组织以用于托管 DevOps 池,如先决条件文章中所述。 每个 Azure 订阅和 Azure DevOps 组织只需完成一次这些步骤。

登录 Azure CLI

打开命令提示符(在 Windows 上,使用 Windows 命令提示符或 PowerShell),并运行以下命令。

  1. 登录到 Azure CLI。

    az login
    
  2. 如果有多个 Azure 订阅,请设置默认的 Azure 订阅。

    az account set --subscription "My subscription name"
    

    若要获取订阅列表,可以运行以下命令。

    az account list -o table
    

    如果有多个租户,或者想要详细了解如何使用 Azure CLI 使用 Azure 订阅,请参阅 如何使用 Azure CLI 管理 Azure 订阅。

创建资源组、开发人员中心和开发人员中心项目

  1. 按照使用 Azure CLI 在“创建和配置 Azure 部署环境的开发人员中心”中的“创建开发人员中心”步骤进行操作。

    只需按照“ 创建开发人员中心 ”部分中的步骤进行操作。 记下资源组名称和开发人员中心名称。

  2. 使用 Azure CLI 按照“创建”中的“创建项目”步骤操作并配置项目。

    记下id所创建项目(而不是 )。devCenterId

查看并保存模板

  1. 创建包含以下内容的本地文件名 mdp-azure-deploy.json 。 此文件是一个参数化的 ARM 模板,用于 microsoft.devopsinfrastructure/pools 创建资源。

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "poolName": {
                "type": "string"
            },
            "adoOrg": {
                "type": "string"
            },
            "devCenterResourceId": {
                "type": "string"
            },
            "imageName": {
                "type": "string"
            },
            "poolSize": {
                "type": "int"
            },
            "location": {
                "type": "string",
                "defaultValue": "eastus"
            }
        },
        "variables": {},
        "resources": [
            {
                "name": "[parameters('poolName')]",
                "type": "microsoft.devopsinfrastructure/pools",
                "apiVersion": "2024-04-04-preview",
                "location": "[parameters('location')]",
                "tags": {},
                "properties": {
                    "organizationProfile": {
                        "organizations": [
                            {
                                "url": "[parameters('adoOrg')]",
                                "parallelism": 1
                            }
                        ],
                        "permissionProfile": {
                            "kind": "CreatorOnly"
                        },
                        "kind": "AzureDevOps"
                    },
                    "devCenterProjectResourceId": "[parameters('devCenterResourceId')]",
                    "maximumConcurrency": "[parameters('poolSize')]",
                    "agentProfile": {
                        "kind": "Stateless"
                    },
                    "fabricProfile": {
                        "sku": {
                            "name": "Standard_D2ads_v5"
                        },
                        "images": [
                            {
                                "wellKnownImageName": "[parameters('imageName')]",
                                "buffer": "*"
                            }
                        ],
                        "kind": "Vmss"
                    }
                }
            }
        ]
    }
    
  2. 创建另一个名为 mdp-azure-deploy-parameters.json 的本地文件,并将其保存在与第一个文件相同的文件夹中。 更新以下属性以匹配环境的详细信息。

    参数
    poolName 使用池的所需名称进行更新 value 。 该名称必须包含字母数字字符、.-_字母数字字符,长度介于 3 到 44 个字符之间。 该名称在 Azure 中必须全局唯一。
    adoOrg 更新 value 并替换为 your-organization Azure DevOps 组织的名称。
    devCenterResourceId 使用id一个“创建资源组”、“开发人员中心”和 开发人员中心“项目”步骤进行更新value
    imageName 此示例配置为使用 Azure Pipelines 映像,并使用 Windows Server 2022 映像。 如果要更改它,请从 Azure Pipelines 映像预定义别名中进行选择。 托管 DevOps 池还支持 Azure 计算库映像和选定的市场映像。 有关为这些映像类型配置托管 DevOps 池资源的信息,请参阅 “配置托管 DevOps 池”映像
    poolSize 使用想要能够运行并发作业的最大代理数进行更新 value 。 在此示例中,is poolSize .1
    location 池的 Azure 区域。 在此示例中,区域为 eastus.
    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "poolName": {
                "value": "my-first-managed-pool"
            },
            "adoOrg": {
                "value": "https://dev.azure.com/your-organization"
            },
            "devCenterResourceId": {
                "value": "/subscriptions/subscription_id_placeholder/resourceGroups/fabrikam-managed-devops-pools/providers/Microsoft.DevCenter/projects/fabrikam-dev-center-project"
            },
            "imageName": {
                "value": "windows-2022"
            },
            "poolSize": {
                "value": 1
            },
            "location": {
                "value": "eastus"
            }
        }
    }
    

创建托管 DevOps 池

打开命令提示符(在 Windows 上,使用 Windows 命令提示符或 PowerShell),并运行以下命令。 如果第一个过程中的 Azure CLI 会话仍然处于活动状态,则可以跳过前两个命令。

  1. 登录到 Azure CLI。

    az login
    
  2. 如果有多个 Azure 订阅,请设置默认的 Azure 订阅。

    az account set --subscription "My subscription name"
    

    若要获取订阅列表,可以运行以下命令。

    az account list -o table
    

    如果有多个租户,或者想要详细了解如何使用 Azure CLI 使用 Azure 订阅,请参阅 如何使用 Azure CLI 管理 Azure 订阅。

  3. 保存上一步中的两个 JSON 文件时,请转到该文件夹。 在此示例中,文件将保存到 C:\examples

    cd c:\examples
    
  4. 创建托管 DevOps 池。 替换为 <resourceGroupName> 在第一步中创建的资源组。

    az deployment group create --resource-group <resourceGroupName> --template-file mdp-azure-deploy.json --parameters mdp-azure-deploy-parameters.json
    

    如果订阅没有容量使用所需的 Azure VM SKU 和最大代理计数配置池,则池创建失败,并出现类似于以下消息的错误。 Cores needed to complete this request is 8, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97。 要解决该问题,请参阅查看托管 DevOps 池配额

在Azure 门户中查看创建的池

  1. 登录到 Azure 门户

  2. 搜索 托管 DevOps 池 ,并从可用选项中选择它。

  3. 从列表中选择新的托管 DevOps 池。

  4. 选择 JSON 视图 以查看托管 DevOps 池资源的 JSON 格式。

    池概述中 JSON 视图按钮的屏幕截图。

在 Azure DevOps 中查看代理池

  1. 转到 Azure DevOps 门户并登录到 Azure DevOps 组织(https://dev.azure.com/{your-organization})。

  2. 转到 Azure DevOps>组织设置。

    “组织设置”按钮的屏幕截图。

  3. 转到 Pipelines>代理池,并验证新池是否已列出。 如果刚刚创建了托管 DevOps 池,则新池可能需要一些时间才会显示在代理列表中。

    代理池列表的屏幕截图。

在新池中运行管道

在此步骤中,我们将在 Azure DevOps 项目的默认存储库中创建一个简单的管道,并在新的托管 DevOps 池中运行它。

  1. 转到 Azure DevOps 门户并登录到 Azure DevOps 组织(https://dev.azure.com/{your-organization})。

  2. 转到要在其中运行管道的项目,然后选择“管道”。

    项目列表的屏幕截图。

  3. 选择“新建管道”(或“创建管道”(如果这是第一个管道)。

    “新建管道”按钮的屏幕截图。

  4. 选择 Azure Repos Git

    存储库类型的屏幕截图。

  5. 选择与项目同名的存储库。 在此示例中,该项目名为 FabrikamFiber,因此我们选择具有相同名称的存储库。

    FabrikamFiber 存储库的屏幕截图。

  6. 选择“初学者”管道。

    管道模板列表的屏幕截图。

  7. 默认情况下,初学者模板使用Microsoft托管的 Linux 代理。 编辑管道模板并更改 pool 分区,使其引用在前面的步骤中创建的池。

    # Change these two lines as shown in the following example.
     pool:
      vmImage: ubuntu-latest
    

    在此示例中,将命名fabrikam-managed-pool托管 DevOps 池,因此请替换为vmImage: ubuntu-latestname: fabrikam-managed-pools托管 DevOps 池,并指定托管 DevOps 池的名称。

    # Replace fabrikam-managed-pools with the name
    # of your Managed DevOps Pool.
    pool:
      name: fabrikam-managed-pool
    
  8. 选择“ 保存并运行”,然后选择“ 保存”并再次运行 以确认。

    保存和运行按钮的屏幕截图。

  9. 如果这是此池中的第一个管道运行,则可能需要在管道运行之前授予权限。

  10. 观看 Azure DevOps 中的管道运行,你可以切换到Azure 门户并在“代理”视图中查看正在运行的代理。

清理资源

完成快速入门后,如果不想继续使用这些资源,请删除已创建的资源。

若要删除托管 DevOps 池、开发人员中心和 开发人员中心 Project,可以通过删除包含它们的资源组来删除它们

另请参阅