Démarrage rapide : Créer un pool DevOps managé à l’aide d’Azure CLI
Cet article explique comment créer un pool DevOps managé à l’aide d’Azure CLI et exécuter un pipeline dans celui-ci.
Prérequis
Avant de suivre les étapes décrites dans cet article, vous devez avoir configuré votre abonnement Azure et votre organisation Azure DevOps pour une utilisation avec des pools DevOps managés, comme décrit dans l’article Conditions préalables . Ces étapes doivent être effectuées une seule fois par abonnement Azure et par organisation Azure DevOps.
Installer ou exécuter dans Azure Cloud Shell
Le moyen le plus simple d’apprendre à utiliser Azure CLI consiste à exécuter un environnement Bash dans Azure Cloud Shell via votre navigateur. Pour découvrir Cloud Shell, consultez Démarrage rapide de Bash dans Azure Cloud Shell.
Lorsque vous êtes prêt à installer Azure CLI, consultez les instructions d’installation pour le conteneur Windows, Linux, macOS et Docker.
Vérifiez votre version en exécutant az --version
. Azure Cloud Shell dispose toujours de la dernière version d’Azure CLI préinstallée.
az version
Se connecter à Azure CLI
Ouvrez une invite de commandes (sur Windows, utilisez l’invite de commandes Windows ou PowerShell) et exécutez les commandes suivantes. Si vous utilisez Azure Cloud Shell , vous n’avez pas besoin d’exécuter az login
, sauf si vous souhaitez utiliser un autre compte.
Connectez-vous à Azure CLI.
az login
Si vous avez plusieurs abonnements Azure, définissez votre abonnement Azure par défaut.
az account set --subscription "My subscription name"
Pour obtenir la liste de vos abonnements, vous pouvez exécuter la commande suivante.
az account list -o table
Si vous avez plusieurs locataires ou souhaitez obtenir plus d’informations sur l’utilisation d’un abonnement Azure à l’aide d’Azure CLI, consultez Comment gérer les abonnements Azure avec Azure CLI.
Définissez des variables d’environnement
Exécutez les commandes suivantes pour générer les noms des ressources de ce guide de démarrage rapide. Cet exemple utilise la
EastUS2
région. Remplacez parEastUS2
votre région souhaitée.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"
Exécutez les commandes suivantes pour passer en revue les noms de vos ressources.
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
Créer un groupe de ressources
Exécutez la commande suivante pour créer le groupe de ressources pour contenir les ressources utilisées dans ce guide de démarrage rapide.
az group create --name $RESOURCE_GROUP_NAME --location $REGION
Créer un centre de développement et un projet de centre de développement
Installez l’extension Azure CLI
devcenter
et vérifiez qu’elle est mise à niveau vers la dernière version si elle est déjà installée.az extension add --name devcenter --upgrade
Exécutez les commandes suivantes pour créer un centre de développement et un projet de centre de développement.
# 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)
Après quelques instants, la sortie indique que le centre de développement a été créé. Le
id
centre de développement créé est enregistréDEVCID
et est utilisé pour créer le projet du centre de développement.{ "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" }
Après quelques instants supplémentaires, la sortie indique que le projet du centre de développement a été créé. Le
id
projet du centre de développement créé est enregistréDEVCPID
et est utilisé lors de la création du pool DevOps managé dans la section suivante.{ "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" }
Préparer les fichiers de configuration du pool DevOps gérés
La mdp pool create
méthode a plusieurs paramètres qui prennent des valeurs JSON qui configurent différents aspects du pool.
agent-profile
spécifie si le pool est avec état ou sans état et contient la planification de l’agent de secours. Il s’agit d’un dictionnaire avec une clé unique nommée ouStateful
Stateless
, selon la configuration de votre agent souhaité. Pour plus d’informations sur les propriétés, consultez Configurer la mise à l’échelle.agent-profile
fabric-profile
spécifie la taille de l’agent, les images de machine virtuelle, le disque du système d’exploitation et le stockage attaché. Pour plus d’informations sur lesfabric-profile
propriétés, consultez Configurer les paramètres du pool et Configurer un stockage supplémentaire.organization-profile
spécifie les organisations et projets Azure DevOps qui peuvent utiliser le pool. Pour plus d’informations surorganization-profile
les paramètres, consultez Configurer les paramètres de sécurité - Configurer l’accès de l’organisation.
Créez les trois fichiers suivants et enregistrez-les dans le dossier dans lequel vous prévoyez d’exécuter les commandes Azure CLI pour créer le pool.
Créez un nom de fichier agent-profile.json avec le contenu suivant.
{ "Stateless": {} }
Cette configuration spécifie un agent sans état pour votre pool.
Créez un fichier nommé fabric-profile.json avec le contenu suivant.
{ "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": [] } } }
Cette configuration spécifie un pool à l’aide de l’image Standard_D2as_v5, de l’image Ubuntu-22.04 Azure Pipelines et d’un type de disque de système d’exploitation Standard sans disque de données attaché.
Créez un fichier nommé organization-profile.json avec le contenu suivant. Remplacez
<organization-name>
par le nom de votre organisation Azure DevOps.{ "AzureDevOps": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
Cette configuration spécifie un pool disponible pour tous les projets de votre organisation Azure DevOps.
Créer le pool DevOps managé
Installez l’extension
mdp
et vérifiez qu’elle est mise à niveau vers la dernière version si elle est déjà installée.az extension add --name mdp --upgrade
Créez le pool DevOps managé en exécutant la commande az mdp pool create suivante.
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
Si votre abonnement n’a pas la capacité de configurer votre pool avec la référence SKU de machine virtuelle Azure souhaitée et le nombre maximal d’agents, la création du pool échoue avec une erreur similaire au message suivant.
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
. Pour résoudre le problème, consultez Passer en revue les quotas de pools DevOps gérés.
Afficher votre pool créé dans le Portail Azure
Connectez-vous au portail Azure.
Recherchez les pools DevOps managés et sélectionnez-le dans les options disponibles.
Choisissez votre nouveau pool DevOps managé dans la liste.
Choisissez l’affichage JSON pour afficher le format JSON de votre ressource pools DevOps managés.
Afficher le pool d’agents dans Azure DevOps
Accédez au portail Azure DevOps et connectez-vous à votre organisation Azure DevOps (
https://dev.azure.com/{your-organization}
).Accédez aux paramètres de l’organisation Azure DevOps>.
Accédez aux pools De pipelines>Agent et vérifiez que votre nouveau pool est répertorié. Si vous venez de créer le pool DevOps managé, il peut prendre quelques instants pour que le nouveau pool apparaisse dans la liste des agents.
Exécuter un pipeline dans votre nouveau pool
Dans cette étape, nous allons créer un pipeline simple dans le référentiel par défaut d’un projet Azure DevOps et l’exécuter dans votre nouveau pool DevOps managé.
Accédez au portail Azure DevOps et connectez-vous à votre organisation Azure DevOps (
https://dev.azure.com/{your-organization}
).Accédez au projet dans lequel vous souhaitez exécuter le pipeline, puis choisissez Pipelines.
Choisissez Nouveau pipeline (ou Créez un pipeline s’il s’agit de votre premier pipeline).
Choisissez Git Azure Repos.
Choisissez le référentiel portant le même nom que votre projet. Dans cet exemple, le projet est nommé FabrikamFiber. Nous choisissons donc le dépôt portant le même nom.
Choisissez Pipeline de démarrage.
Par défaut, le modèle de démarrage utilise un agent Linux hébergé par Microsoft. Modifiez le modèle de pipeline et modifiez la
pool
section afin qu’elle fasse référence au pool que vous avez créé lors des étapes précédentes.# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
Dans cet exemple, les pools DevOps managés sont nommés
fabrikam-managed-pool
, donc remplacezvmImage: ubuntu-latest
parname: fabrikam-managed-pools
et spécifiez le nom de votre pool DevOps managé.# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
Choisissez Enregistrer et exécuter, puis enregistrez et exécutez une deuxième fois pour confirmer.
S’il s’agit de la première exécution du pipeline dans ce pool, vous pouvez être invité à accorder des autorisations avant l’exécution du pipeline.
Regardez l’exécution du pipeline dans Azure DevOps, et vous pouvez basculer vers le Portail Azure et voir l’agent en cours d’exécution dans la vue Agents.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser cette application, supprimez le groupe de ressources, le centre de développement, le projet du centre de développement et le pool DevOps géré. Ce guide de démarrage rapide a créé toutes les ressources d’un nouveau groupe de ressources. Vous pouvez donc les supprimer à l’aide de la commande az group delete pour supprimer le groupe de ressources et toutes ses ressources.
az group delete -n $RESOURCE_GROUP_NAME