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 lab pendant ou après la création de la machine virtuelle. Les propriétaires de labo peuvent présélectionner des artefacts obligatoires à appliquer à toutes les VMs de labo lors de leur création, et les utilisateurs de labo peuvent appliquer des artefacts à des VMs 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 Microsoft Azure ou de la machine virtuelle où l’échec d’artefact se produit.

Résoudre les problèmes dans le Portail Microsoft Azure

Si un artefact ne s’applique pas correctement à votre machine virtuelle de laboratoire, vous pouvez commencer par examiner l’état de votre machine virtuelle dans le Portail Microsoft Azure. Vous trouverez des informations sur l’état de la machine virtuelle, vérifiez qu’elle est en cours d’exécution et vérifiez 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 procédant comme suit :

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

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

  2. Sélectionnez Artefacts pour ouvrir la liste des artefacts pour la machine virtuelle lab :

    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 lab est prête à accepter les artefacts appliqués :

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

    Lorsque l’option Appliquer des artefacts apparaît grisée, vous ne pouvez pas appliquer d’artefacts à la machine virtuelle lab, et un message de notification s’affiche sur la page :

    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 la possibilité que votre VM de labo puisse recevoir des artefacts en cours d'application.

La commande GET suivante retourne l’indicateur canApplyArtifacts avec la valeur True ou False. Pour exécuter la commande, remplacez le $SubscriptionId paramètre par votre ID d’abonnement, le paramètre par le $LabName/$VmName nom de votre labo et le nom de la machine virtuelle, ainsi que le paramètre par le $LabRgName nom de votre groupe de ressources lab.

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 défaillants en complétant les étapes suivantes :

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

    Capture d’écran montrant un élément ayant échoué pour une machine virtuelle de laboratoire.

  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 l’utilisation de l’extension de script personnalisé (CSE). Une erreur à ce niveau apparaît dans les journaux d’activité pour l’abonnement et pour le groupe de ressources qui contient la machine virtuelle de laboratoire.

Note

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é pour les échecs liés à l’installation ou à l’application de l’artefact sur la machine virtuelle lab en effectuant les étapes suivantes :

  1. Accédez à la page journal d’activité de la machine virtuelle lab et recherchez l’artefact avec l’état Échec :

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

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

    • Si vous essayez d’appliquer l’artefact directement à votre machine virtuelle lab, recherchez les erreurs d’échec liées au processus d’installation de l’extension Créer ou mettre à jour une 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é.

Enquêter sur le référentiel d'artefacts et le compte de stockage de laboratoire

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, les VMs de laboratoire peuvent ne pas avoir d’accès direct au référentiel d’artefacts. DevTest Labs met en cache les artefacts dans un compte de stockage lab créé lors de l’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.
    

    Par exemple, vous pouvez rencontrer cette erreur lorsque 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 de référentiel au compte stockage Azure en effectuant les étapes suivantes :

  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 les NSG dans tous les réseaux virtuels, cela peut affecter le réseau virtuel utilisé pour créer vos VMs de laboratoire.

  2. Vérifiez toutes les règles NSG :

  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 : a<labname>#.

    1. Accédez à la page Vue d’ensemble du 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. Placez le pointeur de la souris sur la ressource du compte de stockage , déplacez le pointeur vers l’icône i 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é + mise en réseau dans le menu de gauche, puis sélectionnez Mise en 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 activé à partir de réseaux virtuels et d’adresses IP sélectionnés est sélectionné, vérifiez que la liste des adresses IP autorisées affiche les réseaux virtuels du labo qui peuvent être utilisés pour créer des machines virtuelles de laboratoire :

        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. Sinon, vérifiez que activé à partir de tous les réseaux est sélectionné :

        Capture d’écran montrant l’option Activé à partir de tous les réseaux sélectionnée pour le compte de stockage des ressources du laboratoire.

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 CSE

Affichez le fichier journal CSE pour une machine virtuelle Windows en effectuant les étapes suivantes :

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

  2. Dans l’Explorateur de fichiers, accédez à C :\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\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 , tel que 1.status, pour afficher l’erreur.

Pour obtenir des instructions sur la recherche des fichiers journaux sur une machine virtuelle Linux, consultez Utiliser Azure CSE version 2 avec des machines virtuelles Linux.

Vérifier l’agent de machine virtuelle Azure

Vérifiez que l’agent de machine virtuelle Azure (agent de machine virtuelle) de votre machine virtuelle lab est installé et prêt.

Lorsque votre machine virtuelle de laboratoire démarre pour la première fois ou lorsque le CSE s'installe pour la première fois pour répondre à la requête d'application d'artefacts, la machine virtuelle de laboratoire peut avoir besoin de mettre à niveau l'agent de machine virtuelle ou d'attendre que l'agent de machine virtuelle s'initialise. Il se peut que l’agent de machine virtuelle dépende de services dont l’initialisation prend beaucoup de temps.

Déterminez si l’agent de machine virtuelle provoque l’arrêt de la réponse de l’artefact en effectuant les étapes suivantes :

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

  2. Dans l’Explorateur de fichiers, accédez au dossier qui contient les fichiers journaux de votre machine virtuelle lab, 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 s'est produit parce que le service OOBE (out-of-box-experience) a mis beaucoup de temps à démarrer. 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 écrit.

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é d’écrire des scripts qui peuvent fonctionner en mode silencieux sans nécessiter d’intervention de l’utilisateur.

Déterminez si le script provoque l’arrêt de la réponse de l’artefact en effectuant les étapes suivantes :

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

  2. Ouvrez l’Explorateur de fichiers.

  3. Accédez au dossier Téléchargements contenant le script d'installation d'artefact pour votre machine virtuelle, par exemple C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\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 lab et réexécutez le script pour vérifier 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 une mise à jour de 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.

Get support

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

  • Effectuez une recherche dans les ressources de la Communauté Microsoft pour obtenir des informations sur Azure DevTest Labs et consultez les 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.