Intégrer DevTest Labs dans Azure Pipelines

Vous pouvez utiliser l’extension Azure DevTest Labs Tasks pour intégrer Azure DevTest Labs dans des pipelines d’intégration et de livraison continues (CI/CD) Azure Pipelines. L’extension installe plusieurs tâches dans Azure Pipelines, notamment :

  • Créer une machine virtuelle
  • Créer une image personnalisée à partir d’une machine virtuelle
  • Supprimer une machine virtuelle

Ces tâches permettent, par exemple, de déployer rapidement une machine virtuelle d’image de référence, d’exécuter un test spécifique, puis de supprimer la machine virtuelle.

Cet article explique comment utiliser des tâches Azure DevTest Labs pour créer et déployer une machine virtuelle, créer une image personnalisée, puis supprimer la machine virtuelle, le tout en tant que pipeline de mise en production. Normalement, vous effectuez ces tâches séparément dans vos propres pipelines de build, de test et de déploiement.

Prise en main d’Azure DevTest Labs

Vous êtes un nouvel utilisateur d’Azure ? Créer un compte Azure gratuit.

Vous avez déjà un compte Azure ? Bien démarrer avec votre premier labo dans DevTest Labs : Démarrer avec Azure DevTest Labs en quelques minutes.

Prérequis

  • Dans le portail Azure, créez un laboratoire DevTest Labs ou utilisez-en un existant.

  • Inscrivez-vous ou connectez-vous à votre organisation Azure DevOps Services, et créez un projet ou utilisez un projet existant.

  • Installez l’extension Azure DevTest Labs Tasks à partir de Visual Studio Marketplace :

    1. Accédez à Azure DevTest Labs Tasks.
    2. Sélectionnez Get it free (Obtenir gratuitement).
    3. Sélectionnez votre organisation Azure DevOps Services dans la liste déroulante, puis Installer.

Créer un modèle pour générer une machine virtuelle de labo

Tout d’abord, construisez un modèle Azure Resource Manager (ARM) qui crée une machine virtuelle de labo à la demande.

  1. Dans votre labo dans le portail Azure, sélectionnez Ajouter dans la barre de menus supérieure.
  2. Dans l’écran Choisir une base, sélectionnez une image Windows de base pour la machine virtuelle.
  3. Dans l’écran Créer une ressource de labo, sous Artefacts, sélectionnez Ajouter ou supprimer des artefacts.
  4. Dans l’écran Ajouter des artefacts, recherchez WinRM, puis sélectionnez la flèche en regard de Configurer WinRM.
  5. Dans le volet Ajouter un artefact, entrez un nom de domaine complet (FQDN) pour la machine virtuelle, par exemple contosolab00000000000000.westus3.cloudapp.azure.com. Sélectionnez OK, puis de nouveau OK.
  6. Sélectionnez l’onglet Paramètres avancés, et pour Adresse IP, sélectionnez Publique.

    Notes

    Si vous utilisez l’artefact WinRM avec une adresse IP partagée, vous devez ajouter une règle de traduction d’adresses réseau (NAT) pour mapper un port externe au port WinRM. La règle NAT n’est pas requise si vous créez la machine virtuelle avec une adresse IP publique. Pour cette procédure pas à pas, créez la machine virtuelle avec une adresse IP publique.

  7. Sélectionnez Afficher le modèle ARM.
  8. Copiez le code du modèle et enregistrez-le en tant que fichier nommé CreateVMTemplate.json dans votre branche de contrôle de code source locale.
  9. Archivez le modèle dans votre système de contrôle de code source de votre projet.

Pour plus d’informations et pour obtenir des détails, consultez Utiliser un modèle Resource Manager.

Créer un script pour obtenir les propriétés d’une machine virtuelle

Ensuite, créez un script pour collecter les valeurs que les étapes de tâche telles que Copie de fichiers Azure et PowerShell sur des machines cibles utilisent pour déployer des applications sur des machines virtuelles. Normalement, vous utilisez ces tâches pour déployer vos propres applications sur vos machines virtuelles Azure. Les tâches requièrent des valeurs telles que le nom du groupe de ressources de la machine virtuelle, une adresse IP et un nom de domaine complet.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Enregistrez le script suivant avec un nom tel que GetLabVMParams.ps1et archivez-le dans le système de contrôle de code source de votre projet.

Param( [string] $labVmId)

$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId

# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName

# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name

# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress

# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn

# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"

# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"

# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"

Créer un pipeline de mise en production dans Azure Pipelines

Ensuite, créez le pipeline de mise en production dans Azure Pipelines. Les tâches de pipeline utilisent les valeurs que vous avez affectées à la machine virtuelle quand vous avez créé le modèle ARM.

  1. Dans la page de votre projet Azure DevOps Services, sélectionnez Pipelines>Mises en production dans le volet de navigation de gauche.
  2. Sélectionnez Nouveau pipeline.
  3. Dans le volet Sélectionner un modèle, sélectionnez Tâche vide.
  4. Fermez le volet Étape.
  5. Sur la page du Nouveau pipeline de mise en production, sélectionnez l’onglet Variables.
  6. Sélectionnez Ajouter, puis entrez les paires Nom et Valeur suivantes, en sélectionnant Ajouter après avoir ajouté chacune d’elles.
    • vmName : nom de la machine virtuelle que vous avez affecté dans le modèle ARM.
    • userName : nom d’utilisateur pour accéder à la machine virtuelle.
    • password : mot de passe du nom d’utilisateur. Sélectionnez l’icône en forme de cadenas pour masquer et sécuriser le mot de passe.

Ajouter un artefact

  1. Dans la nouvelle page du pipeline de mise en production, sous l’onglet Pipeline, sélectionnez Ajouter un artefact.
  2. Dans le volet Ajouter un artefact, sélectionnez Référentiel Azure.
  3. Dans la liste Projet, sélectionnez votre projet DevOps.
  4. Dans la liste Source (référentiel), sélectionnez votre référentiel source.
  5. Dans la liste Branche par défaut, sélectionnez la branche à modifier.
  6. Sélectionnez Ajouter.

Créer une machine virtuelle DevTest Labs

L’étape suivante consiste à créer une machine virtuelle avec l’image de référence à utiliser pour les futurs déploiements. Cette étape utilise la tâche Créer une machine virtuelle Azure DevTest Labs.

  1. Dans la page nouveau pipeline de mise en production, sous l’onglet Pipeline, sélectionnez le texte du lien hypertexte de l’étape 1.

  2. Dans le volet gauche, sélectionnez le signe plus + regard de Tâche d’agent.

  3. Sous Ajouter des tâches dans le volet droit, recherchez et sélectionnez Créer une machine virtuelle Azure DevTest Labs, puis Ajouter.

  4. Dans le volet gauche, sélectionnez la tâche Créer une machine virtuelle Azure DevTest Labs.

  5. Dans le volet de droite, remplissez le formulaire comme suit :

    • Abonnement Azure RM : sélectionnez votre connexion ou abonnement au service dans la liste déroulante, puis Autoriser si nécessaire.

      Notes

      Pour plus d’informations sur la création d’une connexion d’autorisations plus restreinte à votre abonnement Azure, consultez Point de terminaison de service Azure Resource Manager.

    • Labo : sélectionnez votre nom de laboratoire DevTest Labs.

    • Nom de la machine virtuelle : variable que vous avez spécifiée pour le nom de votre machine virtuelle : $vmName.

    • Modèle : recherchez et sélectionnez le fichier de modèle que vous avez archivé dans le référentiel de votre projet.

    • Fichier de paramètres : si vous avez vérifié un fichier de paramètres dans votre référentiel, recherchez-le et sélectionnez-le.

    • Substitutions de paramètres : entrez -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.

    • Menu déroulant Variables de sortie et, sous Nom de référence, entrez la variable pour l’identifiant de la machine virtuelle de labo créée. Pour plus de simplicité, entrez vm comme nom de référence. labVmId est un attribut de cette variable et va être référencé ultérieurement comme $vm.labVmId. Si vous utilisez un autre nom, n’oubliez pas de l’utiliser en conséquence dans les tâches suivantes.

      L’ID du labo de la machine virtuelle va être de cette forme : /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

Collecter les détails de la machine virtuelle DevTest Labs

Ensuite, le pipeline exécute le script que vous avez créé pour collecter les détails de la machine virtuelle DevTest Labs.

  1. Dans l’onglet Tâches du pipeline de mise en production, sélectionnez le signe plus + à côté de Tâche d’agent.
  2. Sous Ajouter des tâches dans le volet droit, recherchez et sélectionnez Azure PowerShell, puis Ajouter.
  3. Dans le volet gauche, sélectionnez la tâche Script Azure PowerShell : FilePath.
  4. Dans le volet de droite, remplissez le formulaire comme suit :
    • Abonnement Azure : sélectionnez votre connexion ou abonnement au service.
    • Type de script : sélectionnez Chemin de fichier de script.
    • Chemin du script : recherchez et sélectionnez le script PowerShell que vous avez archivé dans votre référentiel de code source. Vous pouvez utiliser les propriétés intégrées pour simplifier le chemin, par exemple : $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • Arguments de script : entrez -labVmId $(vm.labVmId)comme valeur.

Le script collecte les valeurs requises et les stocke dans des variables d’environnement au sein du pipeline de mise en production afin que vous puissiez y faire référence dans les étapes suivantes.

Créer une image de machine virtuelle à partir de la machine virtuelle DevTest Labs

La tâche suivante crée une image de la machine virtuelle récemment déployée dans votre laboratoire. Vous pouvez utiliser l’image pour créer des copies de la machine virtuelle à la demande afin d’effectuer des tâches de développement ou d’exécuter des tests.

  1. Dans l’onglet Tâches du pipeline de mise en production, sélectionnez le signe plus + à côté de Tâche d’agent.
  2. Sous Ajouter des tâches, sélectionnez Créer une image personnalisée Azure DevTest Labs, puis sélectionnez Ajouter.
  3. Dans le volet gauche, sélectionnez la tâche Créer une image personnalisée Azure DevTest Labs.
  4. Dans le volet de droite, remplissez le formulaire comme suit :
    • Abonnement Azure RM : sélectionnez votre connexion ou abonnement au service.
    • Labo : Sélectionnez votre labo.
    • Nom de l’image personnalisée : entrez un nom pour l’image personnalisée.
    • Description : entrez éventuellement une description afin de faciliter la sélection de l’image appropriée.
    • Machine virtuelle de labo source : le labVmId source. Entrez $(vm.labVmId) comme valeur.
    • Variables de sortie : vous pouvez modifier le nom de la variable d’ID d’image personnalisée par défaut si nécessaire.

Déployer votre application sur la nouvelle machine virtuelle DevTest Labs (facultatif)

Vous pouvez ajouter des tâches pour déployer votre application sur la nouvelle machine virtuelle DevTest Labs. Si vous souhaitez uniquement tester la création d’une machine virtuelle DevTest Labs et d’une image personnalisée, sans y déployer d’application, vous pouvez ignorer cette étape.

Les tâches que vous utilisez habituellement pour déployer les applications sont Copie de fichiers Azure et PowerShell sur des ordinateurs cibles. Les informations sur la machine virtuelle dont vous avez besoin pour les paramètres de ces tâches sont stockées dans trois variables de configuration nommées labVmRgName, labVMIpAddress et labVMFqdn au sein du pipeline de mise en production.

Supprimer la machine virtuelle

La dernière tâche consiste à supprimer la machine virtuelle que vous avez déployée dans votre labo. Normalement, vous supprimez la machine virtuelle après avoir exécuté les tâches ou exécuté les tests dont vous avez besoin sur la machine virtuelle déployée.

  1. Dans l’onglet Tâches du pipeline de mise en production, sélectionnez le signe plus + à côté de Tâche d’agent.
  2. Sous Ajouter des tâches, sélectionnez Supprimer la machine virtuelle Azure DevTest Labs, puis sélectionnez Ajouter.
  3. Configurez la tâche comme indiqué ci-dessous :
    • Abonnement Azure RM : sélectionnez votre connexion ou abonnement au service.
    • Labo : Sélectionnez votre labo.
    • Machine virtuelle : entrez $(vm.labVmId) comme valeur.
    • Variables de sortie : sous Nom de référence, si vous avez modifié le nom par défaut de la variable labVmId, entrez-le ici. La valeur par défaut est $(labVmId).

Enregistrer le pipeline de mise en production

Pour enregistrer le nouveau pipeline de mise en production :

  1. Sélectionnez Nouveau pipeline de mise en production en haut dans la page Pipeline de mise en production, puis renommez le pipeline.
  2. Sélectionnez Enregistrer en haut à droite.

Créer et exécuter une mise en production

Pour créer et exécuter une mise en version à l’aide du nouveau pipeline :

  1. Sélectionnez Créer une mise en production en haut à droite de la page du pipeline de mise en production.
  2. Sous Artefacts, sélectionnez le dernier build, puis sélectionnez Créer.

À chaque étape de la mise en production, vous pouvez actualiser l’affichage de votre labo dans le portail Azure pour afficher la création de la machine virtuelle, la création de l’image et la suppression de la machine virtuelle.

Vous pouvez utiliser l’image personnalisée pour créer des machines virtuelles quand vous en avez besoin.

Étapes suivantes