Résoudre des problèmes d’application d’artefacts sur des machines virtuelles DevTest Labs

Cet article vous guide dans les causes possibles et les étapes de résolution des problèmes de défaillance d’artefact sur des 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 causes peuvent être à l’origine de l’échec d’installation ou d’exécution correctes des artefacts. Quand un artefact semble ne plus répondre, commencez par déterminer où il est bloqué. L’installation d’un artefact peut être bloquée lors de la demande initiale, ou échouer pendant l’exécution de celle-ci.

Vous pouvez résoudre des problèmes de défaillance d’artefact à partir du portail Azure ou de la machine virtuelle où l’artefact a échoué.

Résoudre des problèmes de défaillance d’artefact avec le portail Azure

Si vous ne pouvez pas appliquer un artefact à une machine virtuelle, commencez par vérifier les éléments suivants dans le Portail Azure :

  • Vérifiez que la machine virtuelle est en cours d’exécution.
  • Accédez à la page Artefacts de la machine virtuelle de labo pour vous assurer que celle-ci est prête à appliquer des artefacts. Si la fonctionnalité Appliquer les artefacts n’est pas disponible, un message s’affiche en haut de la page.

Utiliser une commande PowerShell

Vous pouvez également utiliser Azure PowerShell pour déterminer si la machine virtuelle peut appliquer des artefacts. Examinez l’indicateur canApplyArtifacts qui est retourné uniquement quand vous développez une opération GET. Par exemple :

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 l’artefact en échec

Un artefact peut cesser de répondre et finalement apparaître comme en Échec. Pour examiner les artefacts en échec :

  1. Sur la page vue d’ensemble de votre labo, dans la liste sous Mes machines virtuelles, sélectionnez la machine virtuelle sur laquelle est installé l’artefact que vous souhaitez examiner.

  2. Sur la page Vue d’ensemble de la machine virtuelle, dans le volet de navigation gauche, sélectionnez Artefacts. La page Artefacts affiche la liste des artefacts associés à la machine virtuelle et leur état.

    Capture d’écran montrant la liste des artefacts et leur état.

  3. Sélectionnez un artefact à l’état Échec. L’artefact s’ouvre, affichant un message d’extension contenant des détails sur son échec.

    Capture d’écran du message d’erreur d’un artefact ayant échoué.

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 de la machine virtuelle.

Si l’installation d’un artefact a échoué, inspectez les entrées du Journal d’activité pour la création ou mise à jour d’une extension de machine virtuelle si vous avez appliqué l’artefact directement, ou la création ou mise à jour d’une machine virtuelle si l’artefact a été appliqué dans le cadre de la création de la machine virtuelle. Recherchez des défaillances sous ces entrées. Il se peut sur vous deviez développer une entrée pour voir la défaillance.

Sélectionnez l’entrée en échec pour afficher les détails de l’erreur. Sur la page de la défaillance, 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 privés 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. 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. En cas d’échec d’installation d’un artefact personnalisé, assurez-vous 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 (PAT) 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.

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. Si l’accès à ce compte de stockage est bloqué, par exemple quand le trafic de la machine virtuelle vers le service Stockage Azure est bloqué, une erreur similaire à celle ci-dessous 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.

Cette erreur apparaît dans le Journal d’activité du groupe de ressources de la machine virtuelle.

Pour résoudre des problèmes de connectivité au compte Stockage Azure :

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

  • Vérifiez les règles du 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. Vous pouvez également vérifier 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 pour Autoriser le trafic entrant. 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 du 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<nomlabo>#.

    1. Accédez au groupe de ressources du laboratoire.
    2. Recherchez la ressource de type Compte de stockage, dont le nom correspond à la convention.
    3. Sur la page Vue d’ensemble du compte de stockage, sélectionnez Mise en réseau dans le volet de navigation de gauche.
    4. Sous l’onglet Pare-feu et réseaux virtuels, vérifiez que l’Accès au réseau public est défini sur Activé à partir de tous les réseaux. Ou bien, si l’option Activé à partir des réseaux virtuels et des adresses IP sélectionnés est sélectionnée, vérifiez que les réseaux virtuels du labo utilisés pour créer des machines virtuelles sont ajoutés à la liste.

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

Résoudre des problèmes de défaillances d’artefact à partir de la machine virtuelle de labo

Vous pouvez vous connecter à la machine virtuelle de labo dans laquelle l’artefact a échoué pour examiner le problème.

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

  1. Sur la machine virtuelle de labo, accédez à C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, où *1.10.12* est le numéro de version de l’extension de script personnalisé.

    Capture d’écran du dossier État sur la machine virtuelle du labo.

  2. Ouvrez et examinez le fichier STATUS pour voir l’erreur.

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

Assurez-vous que l’agent de machine virtuelle Azure est installé et prêt.

Lors du premier démarrage de la machine virtuelle 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 requière 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. Pour plus d’informations sur la résolution des problèmes, consultez Vue d’ensemble d’agent de machine virtuelle Azure.

Pour vérifier si l'artefact a semblé cesser de répondre à cause de l'agent de machine virtuelle :

  1. Sur la machine virtuelle de labo, accédez à C:\WindowsAzure\logs.

  2. Ouvrez le fichier WaAppAgent.log.

  3. Recherchez des entrées décrivant le démarrage de l’agent de machine virtuelle, la fin de l’initialisation et l’envoi de la première pulsation, autour de l’heure à laquelle vous avez rencontré le problème d’artefact.

    [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 l’exemple précédent, le démarrage de l’agent de machine virtuelle a pris 10 minutes et 20 secondes. La cause était que le service OOBE avait pris beaucoup de temps à démarrer.

Pour obtenir des informations générales sur les extensions Azure, consultez Extensions et fonctionnalités des machines virtuelles Azure.

Examiner les problèmes de script

L’installation d’un artefact pourrait échouer en raison de la façon dont le script d’installation de l’artefact est créé. Par exemple :

  • Le script a des paramètres obligatoires mais ne transmet pas de valeur, soit pour permettre à l’utilisateur de le laisser vide, soit parce qu’il n’y a pas de valeur par défaut dans le fichier de définition artifactfile.json. Le script cesse de répondre parce qu’il attend une entrée de l'utilisateur.

  • Le script exige une entrée de l’utilisateur dans le cadre de l’exécution. Les scripts devraient fonctionner de manière silencieuse sans exiger d’intervention de l’utilisateur.

Pour déterminer si le script est à l’origine du fait que l’artefact semble cesser de répondre :

  1. Copiez le script vers la machine virtuelle ou localisez-le sur la machine virtuelle dans l’emplacement de téléchargement de script d’artefact, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. À l’aide d’une invite de commandes d’administration, exécutez le script sur la machine virtuelle, en fournissant les valeurs de paramètres qui ont provoqué le problème.
  3. Déterminez si le script présente un comportement indésirable. Si c’est le cas, demandez une mise à jour du script ou corrigez-le.

Conseil

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.

Notes

Un artefact personnalisé doit avoir la structure appropriée. 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.

Étapes suivantes

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

  • Contactez les experts Azure DevTest Labs sur les forums MSDN Azure et Stack Overflow.
  • Obtenez des réponses de la part d’experts Azure via les Forums Azure.
  • 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.
  • Accédez au site du support Azure, puis sélectionnez Envoyer un ticket de support pour signaler un incident au support Azure.