Schnellstart: Erstellen eines verwalteten DevOps-Pools mit Azure CLI
In diesem Artikel erfahren Sie, wie Sie einen verwalteten DevOps-Pool mit Azure CLI erstellen und eine Pipeline darin ausführen.
Voraussetzungen
Bevor Sie die Schritte in diesem Artikel ausführen, müssen Sie Ihr Azure-Abonnement und Ihre Azure DevOps-Organisation für die Verwendung mit verwalteten DevOps-Pools konfiguriert haben, wie im Artikel "Voraussetzungen" beschrieben. Diese Schritte müssen nur einmal pro Azure-Abonnement und Azure DevOps-Organisation abgeschlossen werden.
Installieren oder Ausführen in Azure Cloud Shell
Am einfachsten erfahren Sie, wie Sie die Azure CLI verwenden können, indem Sie eine Bash-Umgebung in Azure Cloud Shell über Ihren Browser ausführen. Informationen zu Cloud Shell finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie bereit sind, die Azure CLI zu installieren, lesen Sie die Installationsanweisungen für Windows, Linux, macOS und Docker-Container.
Überprüfen Sie Ihre Version, indem Sie diese ausführen az --version
. Azure Cloud Shell verfügt immer über die neueste Version der vorinstallierten Azure CLI.
az version
Melden Sie sich bei der Azure-Befehlszeilenschnittstelle an.
Öffnen Sie eine Eingabeaufforderung (unter Windows, verwenden Sie die Windows-Eingabeaufforderung oder PowerShell), und führen Sie die folgenden Befehle aus. Wenn Sie Azure Cloud Shell verwenden, müssen Sie es nicht ausführenaz login
, es sei denn, Sie möchten ein anderes Konto verwenden.
Melden Sie sich bei Azure CLI an.
az login
Wenn Sie über mehrere Azure-Abonnements verfügen, legen Sie Ihr Azure-Standardabonnement fest.
az account set --subscription "My subscription name"
Um eine Liste Ihrer Abonnements abzurufen, können Sie den folgenden Befehl ausführen.
az account list -o table
Wenn Sie über mehrere Mandanten verfügen oder weitere Informationen zum Arbeiten mit Azure-Abonnements mit Azure CLI anzeigen möchten, lesen Sie , wie Sie Azure-Abonnements mit der Azure CLI verwalten.
Definieren von Umgebungsvariablen
Führen Sie die folgenden Befehle aus, um die Namen für die Ressourcen in dieser Schnellstartanleitung zu generieren. In diesem Beispiel wird die
EastUS2
Region verwendet. Ersetzen Sie sieEastUS2
durch Ihre gewünschte Region.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"
Führen Sie die folgenden Befehle aus, um Die Ressourcennamen zu überprüfen.
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
Erstellen einer Ressourcengruppe
Führen Sie den folgenden Befehl aus, um die Ressourcengruppe zu erstellen, um die in dieser Schnellstartanleitung verwendeten Ressourcen zu enthalten.
az group create --name $RESOURCE_GROUP_NAME --location $REGION
Erstellen eines Dev Center- und Dev Center-Projekts
Installieren Sie die Azure CLI-Erweiterung
devcenter
, und stellen Sie sicher, dass sie auf die neueste Version aktualisiert wird, wenn sie bereits installiert ist.az extension add --name devcenter --upgrade
Führen Sie die folgenden Befehle aus, um ein Dev Center- und Dev Center-Projekt zu erstellen.
# 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)
Nach ein paar Momenten gibt die Ausgabe an, dass das Dev Center erstellt wurde. Das
id
erstellte Dev Center wird gespeichertDEVCID
und zum Erstellen des Dev Center-Projekts verwendet.{ "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" }
Nach ein paar weiteren Momenten gibt die Ausgabe an, dass das Dev Center-Projekt erstellt wurde. Das
id
erstellte Dev Center-Projekt wird gespeichertDEVCPID
und wird beim Erstellen des verwalteten DevOps-Pools im nächsten Abschnitt verwendet.{ "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" }
Vorbereiten der Konfigurationsdateien des verwalteten DevOps-Pools
Die mdp pool create
Methode verfügt über mehrere Parameter, die JSON-Werte verwenden, die unterschiedliche Aspekte des Pools konfigurieren.
agent-profile
Gibt an, ob der Pool zustands- oder zustandslos ist und den Standby-Agent-Zeitplan enthält. Es handelt sich um ein Wörterbuch mit einem einzelnen Schlüssel mit dem Namen oderStateful
Stateless
, je nach der gewünschten Agentkonfiguration. Weitere Informationen zuagent-profile
Eigenschaften finden Sie unter Konfigurieren der Skalierung.fabric-profile
Gibt die Agentgröße, VM-Images, Betriebssystemdatenträger und angefügten Speicher an. Weitere Informationen zu denfabric-profile
Eigenschaften finden Sie unter Konfigurieren von Pooleinstellungen und Konfigurieren zusätzlicher Speicher.organization-profile
Gibt die Azure DevOps-Organisationen und -Projekte an, die den Pool verwenden können. Weitere Informationen zuorganization-profile
Einstellungen finden Sie unter Konfigurieren von Sicherheitseinstellungen – Konfigurieren des Organisationszugriffs.
Erstellen Sie die folgenden drei Dateien, und speichern Sie sie in dem Ordner, in dem Sie die Azure CLI-Befehle ausführen möchten, um den Pool zu erstellen.
Erstellen Sie einen Dateinamen agent-profile.json mit dem folgenden Inhalt.
{ "Stateless": {} }
Diese Konfiguration gibt einen zustandslosen Agent für Ihren Pool an.
Erstellen Sie eine Datei mit dem Namen fabric-profile.json mit dem folgenden Inhalt.
{ "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": [] } } }
Diese Konfiguration gibt einen Pool mit dem Standard_D2as_v5 Image, dem Ubuntu-22.04 Azure Pipelines-Image und einem Standard-Betriebssystemdatenträgertyp ohne angefügten Datenträger an.
Erstellen Sie eine Datei mit dem Namen organization-profile.json mit dem folgenden Inhalt. Ersetzen Sie den
<organization-name>
Namen für Ihre Azure DevOps-Organisation.{ "azure-dev-ops": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
Diese Konfiguration gibt einen Pool an, der für alle Projekte in Ihrer Azure DevOps-Organisation verfügbar ist.
Erstellen des verwalteten DevOps-Pools
Installieren Sie die
mdp
Erweiterung, und stellen Sie sicher, dass sie auf die neueste Version aktualisiert wird, wenn sie bereits installiert ist.az extension add --name mdp --upgrade
Erstellen Sie den verwalteten DevOps-Pool, indem Sie den folgenden Befehl zum Erstellen des az mdp-Pools ausführen.
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
Wenn Ihr Abonnement nicht über die Kapazität zum Konfigurieren Ihres Pools mit der gewünschten Azure VM-SKU und der maximalen Anzahl von Agents verfügt, schlägt die Poolerstellung mit einem Fehler wie die folgende Meldung fehl.
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
. Informationen zum Beheben des Problems finden Sie unter Überprüfen von Kontingenten für Managed DevOps-Pools.
Anzeigen des erstellten Pools im Azure-Portal
Melden Sie sich beim Azure-Portal an.
Suchen Sie nach verwalteten DevOps-Pools , und wählen Sie sie aus den verfügbaren Optionen aus.
Wählen Sie ihren neuen verwalteten DevOps-Pool aus der Liste aus.
Wählen Sie JSON-Ansicht aus, um das JSON-Format Ihrer Ressource für verwaltete DevOps-Pools anzuzeigen.
Anzeigen des Agentpools in Azure DevOps
Wechseln Sie zum Azure DevOps-Portal, und melden Sie sich bei Ihrer Azure DevOps-Organisation an (
https://dev.azure.com/{your-organization}
).Wechseln Sie zu den Azure DevOps-Organisationseinstellungen>.
Wechseln Sie zu Pipelines-Agent-Pools>, und stellen Sie sicher, dass Ihr neuer Pool aufgeführt ist. Wenn Sie gerade den verwalteten DevOps-Pool erstellt haben, kann es einige Minuten dauern, bis der neue Pool in der Agentsliste angezeigt wird.
Ausführen einer Pipeline in Ihrem neuen Pool
In diesem Schritt erstellen wir eine einfache Pipeline im Standard-Repository eines Azure DevOps-Projekts und führen sie in Ihrem neuen verwalteten DevOps-Pool aus.
Wechseln Sie zum Azure DevOps-Portal, und melden Sie sich bei Ihrer Azure DevOps-Organisation an (
https://dev.azure.com/{your-organization}
).Wechseln Sie zu dem Projekt, in dem Sie die Pipeline ausführen möchten, und wählen Sie "Pipelines" aus.
Wählen Sie "Neue Pipeline " aus (oder "Pipeline erstellen", wenn dies Ihre erste Pipeline ist).
Wählen Sie Azure Repos Git aus.
Wählen Sie das Repository aus, das denselben Namen wie Ihr Projekt hat. In diesem Beispiel heißt das Projekt "FabrikamFiber", daher wählen wir das Repository mit demselben Namen aus.
Wählen Sie "Startpipeline" aus.
Standardmäßig verwendet die Startvorlage einen von Microsoft gehosteten Linux-Agent. Bearbeiten Sie die Pipelinevorlage, und ändern Sie den
pool
Abschnitt so, dass er sich auf den Pool bezieht, den Sie in den vorherigen Schritten erstellt haben.# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
In diesem Beispiel heißt der Name
fabrikam-managed-pool
der verwalteten DevOps-Pools , ersetzen SievmImage: ubuntu-latest
also durchname: fabrikam-managed-pools
, und geben Sie den Namen Ihres verwalteten DevOps-Pools an.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Wählen Sie "Speichern und ausführen" aus, und wählen Sie "Speichern" aus, und führen Sie zum Bestätigen ein zweites Mal aus.
Wenn dies die erste Pipeline ist, die in diesem Pool ausgeführt wird, werden Sie möglicherweise aufgefordert, Berechtigungen zu erteilen, bevor die Pipeline ausgeführt wird.
Beobachten Sie, wie die Pipeline in Azure DevOps ausgeführt wird, und Sie können zum Azure-Portal wechseln und den ausgeführten Agent in der Ansicht "Agents" anzeigen.
Bereinigen von Ressourcen
Wenn Sie diese Anwendung nicht weiterhin verwenden werden, löschen Sie die Ressourcengruppe, das Dev Center, das Dev Center-Projekt und den Verwalteten DevOps-Pool. Mit dieser Schnellstartanleitung wurden alle Ressourcen in einer neuen Ressourcengruppe erstellt, sodass Sie sie alle löschen können, indem Sie den Befehl "az group delete " verwenden, um die Ressourcengruppe und alle zugehörigen Ressourcen zu löschen.
az group delete -n $RESOURCE_GROUP_NAME