共用方式為


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

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

必要條件

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

在 Azure Cloud Shell 中安裝或執行

瞭解如何使用 Azure CLI 最簡單的方式,是透過瀏覽器在 Azure Cloud Shell執行 Bash 環境。 若要了解 Cloud Shell,請參閱 Azure Cloud Shell 中 Bash 的快速入門

當您準備好安裝 Azure CLI 時,請參閱 Windows、Linux、macOS 和 Docker 容器的安裝指示

執行 az --version來檢查您的版本。 Azure Cloud Shell 一律會預安裝最新版的 Azure CLI。

az version

登入 Azure CLI

開啟命令提示字元 (在 Windows 上,使用 Windows 命令提示字元或 PowerShell),然後執行下列命令。 如果您使用 Azure Cloud Shell ,除非您想要使用不同的帳戶,否則不需要執行 az login

  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. 執行下列命令來產生本快速入門中資源的名稱。 此範例會使用 EastUS2 區域。 將取代 EastUS2 為您所需的區域。

    export RANDOM_ID="$(openssl rand -hex 3)"
    export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID"
    export REGION=EastUS2
    export POOL_NAME="mdpPool$RANDOM_ID"
    export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID"
    export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
    
  2. 執行下列命令來檢閱您的資源名稱。

    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    echo $REGION
    

建立資源群組

  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,並在下一節中建立ManagedDevOps集區時使用。

    {
      "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-22.04"
            ],
            "buffer": "*",
            "wellKnownImageName": "ubuntu-22.04/latest"
          }
        ],
        "osProfile": {
          "secretsManagementSettings": {
            "observedCertificates": [],
            "keyExportable": false
          },
          "logonType": "Service"
        },
        "storageProfile": {
          "osDiskStorageAccountType": "Standard",
          "dataDisks": []
        }
      }
    }
    

    此組態會使用Standard_D2as_v5映射、ubuntu-22.04 Azure 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. 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. 搜尋 受控 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. 移至 [管線>代理程式集區],並確認您的新集區已列出。 如果您剛建立受控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-pools,並指定受控 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

另請參閱