快速入門:使用 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
。
登入 Azure CLI。
az login
如果您有多個 Azure 訂用帳戶,請設定您的預設 Azure 訂用帳戶。
az account set --subscription "My subscription name"
若要取得訂用帳戶的清單,您可以執行下列命令。
az account list -o table
如果您有多個租使用者,或想要查看使用 Azure CLI 使用 Azure 訂用帳戶的詳細資訊,請參閱 如何使用 Azure CLI 管理 Azure 訂用帳戶。
定義環境變數
執行下列命令來產生本快速入門中資源的名稱。 此範例會使用
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"
執行下列命令來檢閱您的資源名稱。
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
建立資源群組
執行下列命令來建立資源群組,以包含本快速入門中使用的資源。
az group create --name $RESOURCE_GROUP_NAME --location $REGION
建立開發人員中心和開發人員中心專案
安裝 Azure CLI
devcenter
擴充功能,並確定它已在安裝時升級至最新版本。az extension add --name devcenter --upgrade
執行下列命令來建立開發人員中心和開發人員中心專案。
# 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 命令以建立集區的資料夾。
使用下列內容建立檔名 agent-profile.json 。
{ "Stateless": {} }
此組態會 指定集區的無狀態代理程式 。
使用下列內容建立名為 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 磁碟類型來指定集區。
使用下列內容建立名為 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集區
mdp
安裝擴充功能,並確定它已安裝時已升級至最新版本。az extension add --name mdp --upgrade
執行下列 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 入口網站 中檢視已建立的集區
登入 Azure 入口網站。
搜尋 受控 DevOps 集區 ,並從可用的選項中選取它。
從清單中選擇新的受控DevOps集區。
選擇 [JSON 檢視 ] 以查看受控 DevOps 集區資源的 JSON 格式。
在 Azure DevOps 中檢視代理程式集區
移至 Azure DevOps 入口網站,然後登入您的 Azure DevOps 組織 (
https://dev.azure.com/{your-organization}
)。移至 Azure DevOps>組織設定。
移至 [管線>代理程式集區],並確認您的新集區已列出。 如果您剛建立受控DevOps集區,新集區可能需要一些時間才會出現在代理程式清單中。
在新集區中執行管線
在此步驟中,我們將在 Azure DevOps 專案的預設存放庫中建立簡單的管線,並在新的受控 DevOps 集區中執行。
移至 Azure DevOps 入口網站,然後登入您的 Azure DevOps 組織 (
https://dev.azure.com/{your-organization}
)。移至您要執行管線的項目,然後選擇 [管線]。
選擇 [新增管線] (如果這是您的第一個管線,請選擇 [建立管線]。
選擇 [Azure Repos Git]。
選擇與專案同名的存放庫。 在此範例中,專案名為 FabrikamFiber,因此我們選擇具有相同名稱的存放庫。
選擇 [入門管線]。
根據預設,入門範本會使用裝載Microsoft Linux 代理程式。 編輯管線範本並變更
pool
區段,使其參考您在先前步驟中建立的集區。# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
在此範例中,Managed DevOps 集區的名稱為
fabrikam-managed-pool
,因此請將 取代vmImage: ubuntu-latest
為name: fabrikam-managed-pools
,並指定受控 DevOps 集區的名稱。# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
選擇 [ 儲存並執行],然後選擇 [ 儲存並執行 第二次] 以確認。
如果這是此集區中的第一個管線執行,系統可能會要求您在管線執行之前授與許可權。
觀看 Azure DevOps 中的管線執行,您可以切換至 Azure 入口網站,並在 [代理程式] 檢視中查看執行中的代理程式。
清除資源
如果您不打算繼續使用此應用程式,請刪除資源群組、開發人員中心、開發人員中心專案,以及受控DevOps集區。 本快速入門已建立新資源群組中的所有資源,因此您可以使用 az group delete 命令來刪除資源群組及其所有資源。。
az group delete -n $RESOURCE_GROUP_NAME