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 :
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 :
Sélectionnez Artefacts et ouvrez la liste des artefacts pour la machine virtuelle de labo :
Cochez l’option Appliquer les artefacts et vérifiez que la machine virtuelle de labo est prête à accepter les artefacts appliqués :
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 :
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 :
Accédez à la page de la liste Artefacts pour la machine virtuelle de labo, puis sélectionnez l’artefact à l’état Échec :
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 :
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 :
Accédez à la page Journal d’activité pour la machine virtuelle de labo et recherchez l’artefact à l’état Échec :
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 :
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 :
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 :
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.
Vérifiez toutes les règles de groupe de sécurité réseau :
Utilisez la fonction de vérification des flux IP pour déterminer si une règle de groupe de sécurité réseau bloque le trafic à destination ou en provenance d’une machine virtuelle.
Vérifiez les règles de groupe de sécurité effectives pour vous assurer qu’il existe une règle de groupe de sécurité réseau Autoriser entrante. Pour en savoir plus, voir Utilisation de règles de sécurité effectives pour résoudre des problèmes de flux de trafic de machine virtuelle.
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>#
.Accédez à la page Vue d’ensemble de la machine virtuelle de labo DevTest Labs, puis sélectionnez Visualiseur de ressources.
Dans le diagramme, recherchez le Compte de stockage dont le nom correspond à la convention d’affectation de noms décrite,
a<labname>#
.Sélectionnez la ressource de Compte de stockage pour afficher le menu contextuel, puis sélectionnez Afficher :
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 :
Sous l’onglet Pare-feu et réseaux virtuels, vérifiez la configuration de l’option Accès au réseau public :
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 :
Autrement, vérifiez que l’option Activé à partir de tous les réseaux est sélectionnée :
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 :
Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.
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
.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 :
Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.
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.
Ouvrez le fichier WaAppAgent.log.
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 :
Connectez-vous à votre machine virtuelle de labo DevTest Labs en cours d’exécution.
Ouvrez une fenêtre d’Explorateur de fichiers.
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.
Ouvrez une fenêtre d’invite de commandes avec des privilèges d’administrateur sur votre machine virtuelle.
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.
Déterminez si le script présente un comportement inattendu ou problématique.
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 :
- Pour plus d’informations sur la bonne façon de créer un artefact, consultez la page Créer des artefacts personnalisés.
- Pour un exemple d’artefact correctement structuré, consultez l’artefact Tester les types de paramètres.
- Pour plus d’informations sur l’écriture et la correction des scripts d’artefact, consultez CRÉATION.
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.