Partager via


Résoudre les problèmes d’artefacts sur des machines virtuelles de labo dans Azure DevTest Labs

Cet article explique les causes possibles et les étapes de résolution des problèmes d’échec d’artefact sur vos machines virtuelles Azure DevTest Labs.

Les artefacts sont des outils, des actions ou des logiciels que vous pouvez installer sur des machines virtuelles de labo pendant ou après la leur création. Les propriétaires de labo peuvent présélectionner des artefacts obligatoires à appliquer à toutes les machines virtuelles de labo lors de leur création, et les utilisateurs de labo peuvent appliquer des artefacts à des machines virtuelles qu’ils possèdent. Plusieurs problèmes peuvent entraîner l’échec de l’installation et de l’application d’artefacts à un labo, ou empêcher leur exécution correcte sur une machine virtuelle de labo.

Lorsqu’un artefact semble cesser de répondre, la première étape consiste à essayer de déterminer pourquoi le processus est bloqué. L’installation d’un artefact peut être bloquée lors de la requête initiale, ou échouer pendant l’exécution de celle-ci. Vous pouvez résoudre les problèmes liés aux échecs d’artefacts à partir du portail Azure ou de la machine virtuelle où l’échec d’artefact se produit.

Résoudre les problèmes dans le portail Azure

Si un artefact ne s’applique pas correctement à votre machine virtuelle de labo, vous pouvez commencer par examiner l’état de votre machine virtuelle dans le portail Azure. Vous pouvez obtenir des informations sur l’état de la machine virtuelle, et vérifier qu’elle est en cours d’exécution et que les artefacts peuvent être appliqués. Les données du journal d’activité de la machine virtuelle de labo comportent des entrées relatives au processus d’installation. Vous pouvez vérifier les entrées pour obtenir des informations sur les échecs d’artefacts.

Vérifier l’état de la machine virtuelle

Vérifiez l’état de la machine virtuelle dans le portail Azure en effectuant ces étapes :

  1. Accédez à la page Vue d’ensemble de la machine virtuelle de labo DevTest Labs, et vérifiez que la machine est En cours d’exécution :

    Capture d’écran montrant comment confirmer que la machine virtuelle DevTest Labs est en cours d’exécution.

  2. Sélectionnez Artefacts et ouvrez la liste des artefacts pour la machine virtuelle de labo :

    Capture d’écran montrant comment ouvrir la liste Artefacts de la machine virtuelle de labo.

  3. Cochez l’option Appliquer les artefacts et vérifiez que la machine virtuelle de labo est prête à accepter les artefacts appliqués :

    Capture d’écran montrant comment confirmer que les artefacts peuvent être appliqués à la machine virtuelle DevTest Labs.

    Lorsque l’option Appliquer les artefacts est grisée, vous ne pouvez pas appliquer d’artefacts à la machine virtuelle de labo, et un message de notification s’affiche :

    Capture d’écran du message indiquant que les artefacts ne peuvent pas être appliqués à la machine virtuelle DevTest Labs.

Utiliser une commande PowerShell

Vous pouvez également utiliser Azure PowerShell pour vérifier si votre machine virtuelle de labo peut recevoir des artefacts appliqués.

La commande GET suivante retourne l’indicateur canApplyArtifacts avec la valeur True ou False. Pour exécuter la commande, remplacez le paramètre $LabName/$VmName par le nom de votre labo et le nom de votre machine virtuelle, puis spécifiez votre groupe de ressources de labo dans le paramètre $LabRgName.

Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$vm = Get-AzResource `
        -Name "$LabName/$VmName" `
        -ResourceGroupName $LabRgName `
        -ResourceType 'microsoft.devtestlab/labs/virtualmachines' `
        -ApiVersion '2018-10-15-preview' `
        -ODataQuery '$expand=Properties($expand=ComputeVm)'
$vm.Properties.canApplyArtifacts

Examiner les détails relatifs aux artefacts en échec

Un artefact peut cesser de répondre et finir par basculer à l’état Échec dans la liste des artefacts de la machine virtuelle de labo.

Examinez les artefacts ayant échoué en effectuant ces étapes :

  1. Accédez à la page de la liste Artefacts pour la machine virtuelle de labo, puis sélectionnez l’artefact à l’état Échec :

    Capture d’écran montrant comment localiser et sélectionner l’artefact ayant échoué pour la machine virtuelle de labo.

  2. La vue de détails Artefact s’ouvre. Les détails incluent des informations sur le Message de déploiement et le Message d’extension concernant l’échec de l’artefact :

    Capture d’écran des détails de l’artefact ayant échoué, avec notamment des informations sur les messages de déploiement et d’extension.

Inspecter les journaux d’activité

Pour installer des artefacts, DevTest Labs crée et déploie un modèle Azure Resource Manager (ARM) qui demande à utiliser l’extension de script personnalisé. Une erreur à ce niveau apparaît dans les journaux d’activité de l’abonnement et du groupe de ressources qui contient la machine virtuelle de labo.

Remarque

Lors de l’affichage des journaux d’activité, vous devrez peut-être développer les entrées du processus d’installation pour afficher les résumés des erreurs d’échec.

Inspectez les entrées du journal d’activité afin d’identifier les échecs liés à l’installation ou à l’application de l’artefact sur la machine virtuelle de labo en effectuant les étapes suivantes :

  1. Accédez à la page Journal d’activité pour la machine virtuelle de labo et recherchez l’artefact à l’état Échec :

    Capture d’écran montrant comment localiser l’entrée du journal d’activité pour un artefact ayant échoué sur la machine virtuelle de labo.

  2. Sélectionnez l’entrée pour ouvrir le volet d’informations et afficher les informations du journal :

    • Si vous tentez d’appliquer l’artefact directement à votre machine virtuelle de labo, recherchez les erreurs d’échec liées au processus d’installation Créer ou mettre à jour une extension de machine virtuelle.

    • Si vous créez une machine virtuelle et appliquez l’artefact pendant le processus, recherchez les erreurs d’échec signalées pour le processus d’installation Créer ou mettre à jour une machine virtuelle.

    Le titre du volet correspond au titre de l’entrée, par exemple Appliquer des artefacts à la machine virtuelle :

    Capture d’écran montrant comment afficher les détails de l’entrée du journal d’activité pour un artefact ayant échoué.

  3. Dans la page de détails, sélectionnez JSON pour examiner le contenu de la charge utile JSON. Vous pouvez voir l’erreur à la fin du document JSON :

    Capture d’écran montrant comment afficher les détails JSON de l’entrée du journal d’activité pour un artefact ayant échoué.

Examiner le référentiel d’artefacts et le compte de stockage du labo

Quand DevTest Labs applique un artefact, il lit la configuration et les fichiers de celui-ci à partir des référentiels connectés. Si l’installation d’un artefact ou son application à votre machine virtuelle de labo échoue, le problème peut être lié à l’accès au référentiel.

Par défaut, DevTest Labs a accès au référentiel d’artefacts publicsde DevTest Labs. Vous pouvez également connecter un labo à un référentiel privé pour accéder à des artefacts personnalisés. Selon la configuration, il se peut que des machines virtuelles de labo n’aient pas d’accès direct au référentiel d’artefacts. DevTest Labs met en cache les artefacts dans un compte de stockage créé lors de la première initialisation du labo.

  • En cas d’échec d’installation d’un artefact personnalisé, vérifiez que le jeton d’accès personnel (PAT) pour le référentiel privé n’a pas expiré. Si le jeton d’accès personnel a expiré, l’artefact n’est pas répertorié et tous les scripts faisant référence aux artefacts de ce référentiel échouent.

  • Si l’accès au compte de stockage est bloqué, une erreur similaire à celle-ci peut s’afficher :

    CSE Error: Failed to download all specified files. Exiting. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
    

    Vous pouvez par exemple rencontrer cette erreur quand le trafic est bloqué de la machine virtuelle vers le service Stockage Azure. L’erreur apparaît dans le journal d’activité du groupe de ressources de la machine virtuelle de labo.

Identifiez les problèmes de connexion du référentiel au compte Stockage Azure en effectuant ces étapes :

  1. Vérifiez si des groupes de sécurité réseau ont été ajoutés. Si une stratégie d’abonnement est ajoutée pour configurer automatiquement des groupes de sécurité réseau dans tous les réseaux virtuels, cela peut affecter le réseau virtuel utilisé pour la création de vos machines virtuelles de labo.

  2. Vérifiez toutes les règles de groupe de sécurité réseau :

  3. Vérifiez le compte de stockage par défaut de votre labo.

    Le compte de stockage par défaut est le premier compte de stockage créé au moment de la création du laboratoire. Le nom commence généralement par la lettre « a » et se termine par un nombre à plusieurs chiffres. Par exemple, a<labname>#.

    1. Accédez à la page Vue d’ensemble de la machine virtuelle de labo DevTest Labs, puis sélectionnez Visualiseur de ressources.

    2. Dans le diagramme, recherchez le Compte de stockage dont le nom correspond à la convention d’affectation de noms décrite, a<labname>#.

    3. Sélectionnez la ressource de Compte de stockage pour afficher le menu contextuel, puis sélectionnez Afficher :

      Capture d’écran montrant comment sélectionner l’option Afficher pour le compte de stockage d’une ressource de labo DevTest Labs.

    4. Dans la page Vue d’ensemble du compte de stockage, développez la section Sécurité + réseau dans le menu de gauche, puis sélectionnez Réseau :

      Capture d’écran montrant comment afficher la configuration réseau pour le compte de stockage d’une ressource de labo DevTest Labs.

    5. Sous l’onglet Pare-feu et réseaux virtuels, vérifiez la configuration de l’option Accès au réseau public :

      1. Si l’option Activé à partir des réseaux virtuels et adresses IP sélectionnés est sélectionnée, vérifiez que la liste des adresses IP autorisées contient les réseaux virtuels du labo qui peuvent être utilisés pour créer des machines virtuelles de labo :

        Capture d’écran montrant la sélection de l’option Activé à partir des réseaux virtuels et adresses IP sélectionnés pour le compte de stockage d’une ressources de labo.

      2. Autrement, vérifiez que l’option Activé à partir de tous les réseaux est sélectionnée :

        Capture d’écran montrant la sélection de l’option Activé à partir de tous les réseaux pour le compte de stockage d’une ressource de labo.

Pour une résolution des problèmes en profondeur, consultez Configurer des pare-feux et des réseaux virtuels dans Stockage Azure.

Résoudre les problèmes sur la machine de labo

Vous pouvez vous connecter à la machine virtuelle de labo où l’artefact a échoué et examiner le problème.

Inspecter le fichier journal de l’extension de script personnalisé

Affichez le fichier journal de l’extension de script personnalisé (CSE) pour une machine virtuelle Windows en effectuant ces étapes :

  1. Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.

  2. Ouvrez une fenêtre Explorateur de fichiers et accédez à C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<version CSE>\Status\. Exemple de <version CSE> : 1.10.12.

    Capture d’écran montrant le contenu du dossier Status sur une machine virtuelle Windows pour DevTest Labs.

  3. Ouvrez et inspectez un fichier STATUS pour afficher l’erreur, par exemple 1.status.

Pour obtenir des instructions sur la recherche des fichiers journaux sur une machine virtuelle Linux, consultez Utiliser l’extension de script personnalisé Azure version 2 avec des machines virtuelles Linux.

Vérifier l’agent de machine virtuelle Azure

Vérifiez que l’agent de machine virtuelle Azure pour votre machine virtuelle de labo est installé et prêt.

Lors du premier démarrage de votre machine virtuelle de labo, ou de la première installation de l’extension de script personnalisé en réponse à la demande d’application des artefacts, il se peut que la machine virtuelle de labo nécessite une mise à niveau de l’agent de machine virtuelle ou attende l’initialisation de celui-ci. Il se peut que l’agent de machine virtuelle dépende de services dont l’initialisation prend beaucoup de temps.

Déterminez si l’artefact cesse de répondre à cause de l’agent de machine virtuelle en effectuant ces étapes :

  1. Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.

  2. Ouvrez une fenêtre Explorateur de fichiers et accédez au dossier contenant les fichiers journaux de votre machine virtuelle de labo, par exemple C:\WindowsAzure\logs.

  3. Ouvrez le fichier WaAppAgent.log.

  4. Dans le fichier journal, recherchez les entrées qui indiquent le démarrage de l’agent de machine virtuelle, la fin de l’initialisation et l’envoi de la première pulsation. Recherchez les entrées qui indiquent des horodatages autour du moment où le problème d’artefact s’est produit. L’extrait suivant montre quelques exemples d’entrées du fichier journal :

    [00000006] [11/14/2019 05:52:13.44] [INFO]  WindowsAzureGuestAgent starting. Version 2.7.41491.949
    ...
    [00000006] [11/14/2019 05:52:31.77] [WARN]  Waiting for OOBE to Complete ...
    ...
    [00000006] [11/14/2019 06:02:30.43] [WARN]  Waiting for OOBE to Complete ...
    [00000006] [11/14/2019 06:02:33.43] [INFO]  StateExecutor initialization completed.
    [00000020] [11/14/2019 06:02:33.43] [HEART] WindowsAzureGuestAgent Heartbeat.
    

    Dans cet exemple, le démarrage de l’agent de machine virtuelle a pris 10 minutes et 20 secondes. Le délai est dû au fait que le démarrage du service OOBE (out-of-box-experience) a pris beaucoup de temps. Le long délai de démarrage de l’agent de machine virtuelle a fait que l’artefact a cessé de répondre.

Pour obtenir des informations générales sur les extensions Azure, consultez Extensions et fonctionnalités des machines virtuelles Azure. Pour obtenir d’autres idées de résolution des problèmes, consultez Vue d’ensemble de l’agent de machine virtuelle Azure.

Examiner les problèmes de script

Une autre raison pour laquelle l’installation de l’artefact peut échouer est due à la façon dont le script d’installation de l’artefact est créé.

Voici quelques exemples de problèmes de script potentiels :

  • Le script a des paramètres obligatoires, mais une valeur attendue n’est pas passée pendant l’exécution du script. Ce scénario peut se produire si l’utilisateur est autorisé à laisser un paramètre attendu vide, et qu’une valeur par défaut n’est pas spécifiée dans le fichier de définition artifactfile.json. En conséquence, le script cesse de répondre, car il attend l’entrée utilisateur. Lorsque le script nécessite des valeurs de paramètres, il est recommandé de définir des valeurs par défaut et de demander à l’utilisateur d’entrer une valeur.

  • Le script nécessite une action utilisateur pendant l’exécution du script. Ce scénario peut se produire s’il existe un long délai dans l’exécution du script en attendant que l’utilisateur effectue une action. Il est recommandé de créer des scripts qui peuvent fonctionner en mode silencieux sans nécessiter d’intervention de l’utilisateur.

Déterminez si l’artefact cesse de répondre à cause du script en effectuant ces étapes :

  1. Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.

  2. Ouvrez une fenêtre d’Explorateur de fichiers.

  3. Accédez au dossier Download qui contient le script d’installation d’artefact pour votre machine virtuelle, par exemple, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<version CSE>\Downloads\. Exemple de <version CSE> : 1.10.12.

    Pour les étapes suivantes, vous pouvez utiliser le script dans ce dossier, ou copier le script dans un dossier de travail sur votre machine virtuelle.

  4. Ouvrez une fenêtre d’invite de commandes avec des privilèges d’administrateur sur votre machine virtuelle.

  5. Exécutez le script d’installation d’artefact dans la fenêtre d’invite de commandes.

    Suivez les invites du script et entrez les valeurs de paramètres requises. Pour déterminer si l’absence d’entrée utilisateur ou le retard d’action utilisateur provoque un problème, essayez de reproduire le comportement spécifique.

  6. Déterminez si le script présente un comportement inattendu ou problématique.

  7. Si nécessaire, corrigez le script sur votre machine virtuelle de labo et réexécutez-le pour confirmer que les problèmes sont résolus.

Vérifier la structure des artefacts

Un artefact personnalisé doit avoir la structure appropriée. Veillez à confirmer que les artefacts personnalisés dans le script d’installation d’artefacts implémentent la structure correcte. Les ressources suivantes fournissent des informations pour vous aider à effectuer cette vérification :

Demander la mise à jour d’un script

Vous pouvez envoyer des propositions de corrections de scripts pour des artefacts hébergés dans le référentiel public de DevTest Labs. Pour plus de détails, consultez la section Contributions dans le document README.

Obtenir du support

Si vous avez besoin d’une aide supplémentaire, essayez l’un des canaux de support suivants :

  • Explorez les ressources disponibles sur le site web de la Communauté Microsoft pour obtenir des informations sur Azure DevTest Labs et accéder aux publications sur Stack Overflow.

  • Connectez-vous à @AzureSupport, le compte Microsoft Azure officiel pour améliorer l’expérience client. Le Support Azure fournit à la communauté Azure des réponses, un support technique et des experts.