共用方式為


快速入門:使用 Azure CLI 建立受控 DevOps 集區

本文說明如何使用 Azure CLI 建立受控 DevOps 集區,並在其中執行管線。

必要條件

  • 受控DevOps集區必要條件

    完成本文中的步驟之前,您必須已設定 Azure 訂用帳戶和 Azure DevOps 組織以搭配受控 DevOps 集區使用,如 必要條件 一文所述。 每個 Azure 訂用帳戶和 Azure DevOps 組織只需要完成一次這些步驟。

  • Azure CLI 必要條件

    • 如果您想要在本機計算機上執行 Azure CLI 命令,請參閱 Azure CLI 安裝指示。 如果您已安裝 Azure CLI,請執行 az version 來檢查您的版本。 受控 DevOps 集區的 Azure CLI 擴充功能需要 Azure CLI 2.57.0 版或更高版本。 如果您的 Azure CLI 低於 2.57.0,請執行 az upgrade。 如需詳細資訊,請參閱如何更新 Azure CLI

    • 如果您想要透過瀏覽器使用 Azure Cloud Shell ,請遵循 開始使用 Azure Cloud Shell 暫時會話 中的指示來註冊 Microsoft.CloudShell 命名空間。 您只需要為每個訂用帳戶註冊命名空間一次。

      下列範例使用 bash,因此如果您使用 Azure Cloud Shell,請在啟動 Azure Cloud Shell 時選擇 Bash

登入 Azure CLI

開啟命令提示字元 (在 Windows 上,使用 Windows 命令提示字元或 PowerShell),然後執行下列命令。

  1. 登入 Azure CLI。 如果您使用 Azure Cloud Shell ,除非您想要使用不同的帳戶,否則不需要執行 az login

    az login
    
  2. 如果您有多個 Azure 訂用帳戶,請設定您的預設 Azure 訂用帳戶。

    az account set --subscription "My subscription name"
    

    若要取得訂用帳戶的清單,您可以執行下列命令。

    az account list -o table
    

    如果您有多個租使用者,或想要查看使用 Azure CLI 使用 Azure 訂用帳戶的詳細資訊,請參閱 如何使用 Azure CLI 管理 Azure 訂用帳戶。

定義環境變數

  1. 執行下列命令來產生本快速入門中資源的名稱。 此範例會使用 EastUS2 區域。 請將 EastUS2 替換為您想要的區域。

    export REGION=EastUS2
    export RANDOM_ID="$(openssl rand -hex 3)"
    export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID"
    export POOL_NAME="mdpPool$RANDOM_ID"
    export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID"
    export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
    
    # Echo the generated resource names
    echo $REGION
    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    

建立資源群組

  1. 執行下列命令來建立資源群組,以包含本快速入門中使用的資源。

    az group create --name $RESOURCE_GROUP_NAME --location $REGION
    

建立開發中心及其專案

  1. 執行下列命令,其會在未安裝時安裝 Azure CLI devcenter 擴充功能,並在已安裝時更新為最新版本。

    az extension add --name devcenter --upgrade
    
  2. 執行下列命令來建立開發人員中心和開發人員中心專案。

    # Create a dev center
    az devcenter admin devcenter create -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION
    
    # Save the id of the newly created dev center
    DEVCID=$( \
        az devcenter admin devcenter show -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    
    # Create a dev center project
    az devcenter admin project create -n $DEV_CENTER_PROJECT_NAME \
        --description "My dev center project." \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION \
        --dev-center-id $DEVCID
    
    # Save the dev center project for use when creating
    # the Managed DevOps Pool
    DEVCPID=$( \
        az devcenter admin project show -n $DEV_CENTER_PROJECT_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    

    幾分鐘后,輸出會指出已建立開發人員中心。 已建立的開發人員中心的id將會儲存在DEVCID內,並用來建立開發人員中心專案。

    {
        "devCenterUri": "https://...",
        "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/devcenters/devCenterName",
        "location": "eastus",
        "name": "devCenterName",
        "provisioningState": "Succeeded",
        "resourceGroup": "resourceGroupName",
        "systemData": { ... },
        "type": "microsoft.devcenter/devcenters"
    }
    

    再過一會兒,輸出會指出已建立開發人員中心專案。 id所建立的開發中心專案會儲存在DEVCPID,並在下一節中建立 Managed DevOps 集區時使用。

    {
      "description": "My dev center project.",
      "devCenterId": "...",
      "devCenterUri": "https://...",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/projects/devCenterProjectName",
      "location": "eastus",
      "name": "devCenterProjectName",
      "provisioningState": "Succeeded",
      "resourceGroup": "resourceGroupName",
      "systemData": { ... },
      "type": "microsoft.devcenter/projects"
    }
    

準備受控DevOps集區組態檔

方法 mdp pool create 有數個參數,採用 JSON 值來設定集區的不同層面。

  • agent-profile 指定集區為具狀態或無狀態,且包含待命代理程式排程。 這是一個字典,根據您想要的代理程式組態,只有一個索引鍵,該索引鍵的名稱要麼是 Stateful,要麼是 Stateless。 如需瞭解agent-profile屬性更多資訊,請參閱設定調整
  • fabric-profile 指定代理程式大小、VM 映像、OS 磁碟和連結記憶體。 如需屬性的詳細資訊 fabric-profile ,請參閱 設定集區設定設定其他記憶體
  • organization-profile 指定可使用集區的 Azure DevOps 組織和專案。 如需關於 organization-profile 設定的更多資訊,請參閱 設定安全性設定 - 設定組織存取權

建立下列三個檔案,並將其儲存至您打算執行 Azure CLI 命令以建立集區的資料夾。

  1. 使用下列內容 建立名為agent-profile.json 的檔案。

    {
      "Stateless": {}
    }
    

    此組態會 指定集區的無狀態代理程式

  2. 使用下列內容建立名為 fabric-profile.json 的檔案。

    {
      "vmss": {
        "sku": {
          "name": "Standard_D2as_v5"
        },
        "images": [
          {
            "aliases": [
              "ubuntu-24.04"
            ],
            "buffer": "*",
            "wellKnownImageName": "ubuntu-24.04/latest"
          }
        ],
        "osProfile": {
          "secretsManagementSettings": {
            "observedCertificates": [],
            "keyExportable": false
          },
          "logonType": "Service"
        },
        "storageProfile": {
          "osDiskStorageAccountType": "Standard",
          "dataDisks": []
        }
      }
    }
    

    此組態會使用Standard_D2as_v5映射、ubuntu-24.04Azure Pipelines 映射,以及沒有鏈接數據磁碟的標準OS 磁碟類型來指定集區。

  3. 使用下列內容建立名為 organization-profile.json 的檔案。 將 <organization-name> 取代為您的 Azure DevOps 組織名稱。

    {
      "AzureDevOps": {
        "organizations": [
          {
            "url": "https://dev.azure.com/<organization-name>",
            "projects": [],
            "parallelism": 1
          }
        ],
        "permissionProfile": {
          "kind": "CreatorOnly"
        }
      }
    }
    

    此組態會指定可供 Azure DevOps 組織中所有專案使用的 集區

建立管理式DevOps資源池

  1. 執行下列命令,其會在未安裝時安裝 Azure CLI mdp 擴充功能,並在已安裝時更新為最新版本。

     az extension add --name mdp --upgrade
    
  2. 執行下列 az mdp pool create 命令,以建立受控 DevOps 集區。

    az mdp pool create -n $POOL_NAME \
       -g $RESOURCE_GROUP_NAME \
       -l $REGION \
       --devcenter-project-id $DEVCPID \
       --maximum-concurrency 1 \
       --agent-profile agent-profile.json \
       --fabric-profile fabric-profile.json \
       --organization-profile organization-profile.json
    

    如果您的訂用帳戶沒有容量可設定具有所需 Azure VM SKU 和最大代理程式計數的集區,集區建立會失敗,並出現類似下列訊息的錯誤。 Cores needed to complete this request is 2, 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. 搜尋 Managed DevOps Pool ,並從可用的選項中選取它。

  3. 從列表中選擇您的新管理的 DevOps 資源池。

  4. 選擇 [JSON 檢視 ] 以查看受控 DevOps 集區資源的 JSON 格式。

    集區概觀中 [JSON 檢視] 按鈕的螢幕快照。

在 Azure DevOps 中檢視代理程式集區

  1. 移至 Azure DevOps 入口網站,然後登入您的 Azure DevOps 組織 (https://dev.azure.com/{your-organization})。

  2. 移至 Azure DevOps>組織設定。

    [組織設定] 按鈕的螢幕快照。

  3. 移至管道>代理集區,並確認您的新集區已列出。 如果您剛建立管理式 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
    

    在此範例中,Managed DevOps 集區的名稱為 fabrikam-managed-pool,因此請將 取代 vmImage: ubuntu-latestname: fabrikam-managed-pool,並指定受控 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集區。 本快速入門已在新的資源群組中建立了所有資源,因此您可以使用 az group delete 命令來刪除資源群組及其所有的資源。

az group delete -n $RESOURCE_GROUP_NAME

另請參閱