Delen via


Problemen met artefacten op virtuele machines in lab oplossen in Azure DevTest Labs

In dit artikel wordt u begeleid bij mogelijke oorzaken en probleemoplossingsstappen voor artefactfouten in uw azure DevTest Labs-resources voor virtuele machines (VM's).

Artefacten zijn hulpprogramma's, acties of software die u tijdens of na het maken van de VM op lab-VM's kunt installeren. Labeigenaren kunnen vooraf verplichte artefacten selecteren die moeten worden toegepast op alle lab-VM's bij het maken en labgebruikers kunnen artefacten toepassen op VM's die ze bezitten. Verschillende mogelijke problemen kunnen ertoe leiden dat artefacten niet kunnen worden geïnstalleerd en toegepast op een lab of correct worden uitgevoerd op een lab-VM.

Wanneer een artefact niet meer reageert, is de eerste stap om te bepalen waarom het proces vastloopt. De installatie van artefacten kan worden geblokkeerd tijdens de eerste aanvraag of mislukt tijdens het uitvoeren van de aanvraag. U kunt problemen met artefacten oplossen vanuit Azure Portal of vanuit de VM waar de artefactfout optreedt.

Problemen oplossen in Azure Portal

Als een artefact niet is toegepast op uw lab-VM, kunt u beginnen met het onderzoeken van de status van uw VIRTUELE machine in Azure Portal. U vindt informatie over de status van de virtuele machine, controleer of deze actief is en controleer of artefacten kunnen worden toegepast. De activiteitenlogboekgegevens voor de lab-VM bevatten vermeldingen over installatieprocessen. U kunt de vermeldingen controleren om informatie te vinden over artefactfouten.

VM-status controleren

Controleer de vm-status in Azure Portal door de volgende stappen uit te voeren:

  1. Blader naar de overzichtspagina voor de DevTest Labs-lab-VM en controleer of de machine wordt uitgevoerd:

    Schermopname die laat zien hoe u kunt bevestigen dat de virtuele DevTest Labs-machine wordt uitgevoerd.

  2. Selecteer Artefacten en open de lijst met artefacten voor de lab-VM:

    Schermopname van het openen van de lijst artefacten voor de virtuele machine van het lab.

  3. Controleer de optie Artefacten toepassen en controleer of de lab-VM gereed is om toegepaste artefacten te accepteren:

    Schermopname die laat zien hoe artefacten kunnen worden toegepast op de virtuele Machine van DevTest Labs.

    Wanneer de optie Artefacten toepassen grijs wordt weergegeven, kunt u geen artefacten toepassen op de lab-VM en ziet u een meldingsbericht op de pagina:

    Schermopname van het bericht waarin artefacten kunnen niet worden toegepast op de virtuele Machine van DevTest Labs.

PowerShell-opdracht gebruiken

U kunt Ook Azure PowerShell gebruiken om te controleren of uw lab-VM toegepaste artefacten kan ontvangen.

Met de volgende GET opdracht wordt de canApplyArtifacts vlag geretourneerd met de waarde Waar of Onwaar. Als u de opdracht wilt uitvoeren, vervangt u de parameter door uw $LabName/$VmName labnaam en VM-naam en geeft u de labresourcegroep op in de $LabRgName parameter.

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

Details van mislukte artefacten onderzoeken

Een artefact reageert niet meer en wordt uiteindelijk weergegeven als Mislukt in de lijst met artefacten voor de lab-VM.

Onderzoek mislukte artefacten door de volgende stappen uit te voeren:

  1. Blader naar de lijstpagina Artefacten voor de lab-VM en selecteer het artefact met de status Mislukt :

    Schermopname die laat zien hoe u het mislukte artefact voor de virtuele machine van het lab kunt vinden en selecteren.

  2. De weergave Details van artefact wordt geopend. De details bevatten informatie over het implementatiebericht en het extensiebericht over de artefactfout:

    Schermopname van de details van het mislukte artefact, inclusief informatie over implementatie- en extensieberichten.

Activiteitenlogboeken inspecteren

Als u artefacten wilt installeren, maakt en implementeert DevTest Labs een ARM-sjabloon (Azure Resource Manager) die het gebruik van de aangepaste scriptextensie (CSE) aanvraagt. Er wordt een fout op dit niveau weergegeven in de activiteitenlogboeken voor het abonnement en voor de resourcegroep die de lab-VM bevat.

Notitie

Wanneer u de activiteitenlogboeken bekijkt, moet u mogelijk de vermeldingen van het installatieproces uitvouwen om de samenvattingen van de foutfouten weer te geven.

Controleer met de volgende stappen de vermeldingen in het activiteitenlogboek op fouten met betrekking tot de installatie of toepassing van het artefact op de lab-VM:

  1. Blader naar de pagina Activiteitenlogboek voor de lab-VM en zoek het artefact met de status Mislukt :

    Schermopname van het vinden van de vermelding in het activiteitenlogboek voor een mislukt artefact op de lab-VM.

  2. Selecteer de vermelding om het detailvenster te openen en de logboekgegevens weer te geven:

    • Als u het artefact rechtstreeks op uw lab-VM probeert toe te passen, zoekt u naar fouten met betrekking tot het installatieproces van de extensie voor virtuele machines maken of bijwerken.

    • Als u een virtuele machine maakt en het artefact tijdens het proces toepast, zoekt u naar fouten die zijn gerapporteerd voor het installatieproces van de virtuele machine maken of bijwerken.

    De titel van het deelvenster komt overeen met de titel van het item, zoals Artefacten toepassen op virtuele machine:

    Schermopname van het weergeven van details voor de vermelding van het activiteitenlogboek voor een mislukt artefact.

  3. Selecteer in het detailvenster JSON om de inhoud van de JSON-nettolading te controleren. U ziet de fout aan het einde van het JSON-document:

    Schermopname van het weergeven van de JSON-details voor de vermelding van het activiteitenlogboek voor een mislukt artefact.

Artefactopslagplaats en labopslagaccount onderzoeken

Wanneer DevTest Labs een artefact toepast, worden de artefactconfiguratie en bestanden uit verbonden opslagplaatsen gelezen. Als een artefact niet kan worden geïnstalleerd of toegepast op uw lab-VM, kan het probleem te maken hebben met toegang tot de opslagplaats.

DevTest Labs heeft standaard toegang tot de openbare artefactopslagplaats van DevTest Labs. U kunt ook een lab verbinden met een privéopslagplaats voor toegang tot aangepaste artefacten. Afhankelijk van de configuratie hebben lab-VM's mogelijk geen directe toegang tot de artefactopslagplaats. DevTest Labs slaat de artefacten in een labopslagaccount op dat is gemaakt toen het lab voor het eerst initialiseert.

  • Als een aangepast artefact niet kan worden geïnstalleerd, controleert u of het persoonlijke toegangstoken (PAT) voor de privéopslagplaats niet is verlopen. Als de PAT is verlopen, wordt het artefact niet vermeld en mislukken scripts die verwijzen naar artefacten uit die opslagplaats.

  • Als de toegang tot het opslagaccount wordt geblokkeerd, ziet u mogelijk een fout die vergelijkbaar is met dit voorbeeld:

    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.
    

    Een scenario waarin u deze fout kunt tegenkomen, is wanneer verkeer van de VM naar de Azure Storage-service wordt geblokkeerd. De fout wordt weergegeven in het activiteitenlogboek van de resourcegroep voor de lab-VM.

Identificeer verbindingsproblemen met de opslagplaats met het Azure Storage-account met de volgende stappen:

  1. Controleer op toegevoegde netwerkbeveiligingsgroepen (NSG's). Als er een abonnementsbeleid wordt toegevoegd om NSG's automatisch te configureren in alle virtuele netwerken, kan dit van invloed zijn op het virtuele netwerk dat wordt gebruikt voor het maken van uw lab-VM's.

  2. Controleer alle NSG-regels:

  3. Controleer het standaardopslagaccount voor uw lab.

    Het standaardopslagaccount is het eerste opslagaccount dat is gemaakt tijdens het maken van het lab. De naam begint meestal met de letter 'a' en eindigt met een getal met meerdere cijfers, zoals a<labname>#.

    1. Blader naar de overzichtspagina voor de DevTest Labs-lab-VM en selecteer Resource visualiseren.

    2. Zoek in het diagram het opslagaccount met een naam die overeenkomt met de beschreven naamconventie. a<labname>#

    3. Selecteer de opslagaccountresource om het pop-upmenu weer te geven en selecteer vervolgens Weergave:

      Schermopname van het selecteren van de optie Weergave voor het opslagaccount voor een DevTest Labs-labresource.

    4. Vouw op de pagina Overzicht van het opslagaccount de sectie Beveiliging en netwerken in het linkermenu uit en selecteer Netwerken:

      Schermopname van het weergeven van de netwerkconfiguratie voor het opslagaccount voor een DevTest Labs-labresource.

    5. Controleer op het tabblad Firewalls en virtuele netwerken de configuratie voor de optie Openbare netwerktoegang :

      1. Als Ingeschakeld van geselecteerde virtuele netwerken en IP-adressen is geselecteerd, controleert u of in de lijst met toegestane IP-adressen de virtuele netwerken van het lab worden weergegeven die kunnen worden gebruikt om lab-VM's te maken:

        Schermopname van de optie Ingeschakeld van geselecteerde virtuele netwerken en IP-adressen voor het opslagaccount van de labresource.

      2. Controleer anders of Ingeschakeld vanuit alle netwerken is geselecteerd:

        Schermopname van de optie Ingeschakeld vanuit alle netwerken voor het opslagaccount van de labresource.

Zie Azure Storage-firewalls en virtuele netwerken configureren voor uitgebreide probleemoplossing.

Problemen oplossen op de labcomputer

U kunt verbinding maken met de lab-VM waar het artefact is mislukt en het probleem onderzoeken.

Logboekbestand voor aangepaste scriptextensie controleren

Bekijk het cse-logboekbestand (Custom Script Extension) voor een Windows-VM door de volgende stappen uit te voeren:

  1. Maak verbinding met uw actieve DevTest Labs-lab-VM.

  2. Open een Bestandenverkenner-venster en ga naar C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Een voorbeeld van een CSE-versie> is 1.10.12.<

    Schermopname van de inhoud van de map Status op een virtuele Windows-machine voor DevTest Labs.

  3. Open en inspecteer een STATUS-bestand om de fout weer te geven, zoals 1.status.

Zie De aangepaste scriptextensie versie 2 van Azure gebruiken met virtuele Linux-machines voor instructies over het vinden van de logboekbestanden op een virtuele Linux-VM.

Azure Virtual Machine Agent controleren

Zorg ervoor dat de Azure Virtual Machine Agent (VM-agent) voor uw lab-VM is geïnstalleerd en gereed is.

Wanneer uw lab-VM voor het eerst wordt gestart of wanneer de CSE voor het eerst wordt geïnstalleerd om de aanvraag voor het toepassen van artefacten te verwerken, moet de vm-test-VM mogelijk een upgrade uitvoeren van de VM-agent of wachten totdat de VM-agent is geïnitialiseerd. De VM-agent kan afhankelijk zijn van services die lang duren om te initialiseren.

Bepaal of de VM-agent ervoor zorgt dat het artefact niet meer reageert door de volgende stappen uit te voeren:

  1. Maak verbinding met uw actieve DevTest Labs-lab-VM.

  2. Open een Bestandenverkenner-venster en ga naar de map met de logboekbestanden voor uw lab-VM, zoals C:\WindowsAzure\logs.

  3. Open het bestand WaAppAgent.log .

  4. Zoek in het logboekbestand naar vermeldingen waarin de VM-agent wordt gestart, de initialisatie wordt afgerond en de eerste heartbeat wordt verzonden. Scan vermeldingen op tijdstempels rond de tijd waarop het artefactprobleem is opgetreden. In het volgende fragment ziet u enkele voorbeeldvermeldingen uit het logboekbestand:

    [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.
    

    In dit voorbeeld duurde het 10 minuten en 20 seconden voordat de VM-agent werd gestart. De vertraging is omdat de out-of-box-experience-service (OOBE) lang heeft geduurd om te starten. De lange begintijd voor de VM-agent heeft ervoor gezorgd dat het artefact niet meer reageert.

Zie extensies en functies van virtuele Azure-machines voor algemene informatie over Azure-extensies. Zie het overzicht van azure Virtual Machine Agent voor meer ideeën voor probleemoplossing.

Scriptproblemen onderzoeken

Een andere reden waarom de artefactinstallatie kan mislukken, is het gevolg van de manier waarop het artefactinstallatiescript is geschreven.

Hier volgen enkele voorbeelden van mogelijke scriptproblemen:

  • Het script heeft verplichte parameters, maar er wordt geen verwachte waarde doorgegeven tijdens het uitvoeren van het script. Dit scenario kan zich voordoen als de gebruiker een verwachte parameter leeg mag laten en een standaardwaarde niet is opgegeven in het artifactfile.json definitiebestand. Als gevolg hiervan reageert het script niet meer omdat het wacht op gebruikersinvoer. Wanneer voor het script parameterwaarden zijn vereist, is het een goed idee om standaardwaarden te definiëren en te vereisen dat de gebruiker een waarde invoert.

  • Voor het script is gebruikersactie vereist tijdens het uitvoeren van het script. Dit scenario kan zich voordoen als er een lange vertraging is in de uitvoering van het script terwijl de gebruiker wacht totdat deze actie onderneemt. Het is een goede gewoonte om scripts te schrijven die op de achtergrond kunnen werken zonder tussenkomst van de gebruiker.

Bepaal of het script ervoor zorgt dat het artefact niet meer reageert door de volgende stappen uit te voeren:

  1. Maak verbinding met uw actieve DevTest Labs-lab-VM.

  2. Open een Bestandenverkenner venster.

  3. Ga naar de map Downloaden met het installatiescript voor artefacten voor uw VIRTUELE machine, zoals C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Een voorbeeld van een CSE-versie> is 1.10.12.<

    Voor de volgende stappen kunt u met het script in deze map werken of het script kopiëren naar een werkmap op uw VIRTUELE machine.

  4. Open een opdrachtpromptvenster met beheerdersbevoegdheden op uw VIRTUELE machine.

  5. Voer het installatiescript voor artefacten uit in het opdrachtpromptvenster.

    Volg de scriptprompts en voer de vereiste parameterwaarden in. Als u wilt onderzoeken of het ontbreken van gebruikersinvoer of vertraagde gebruikersactie een probleem veroorzaakt, probeert u het specifieke gedrag te reproduceren.

  6. Bepaal of het script onverwacht of problematisch gedrag laat zien.

  7. Corrigeer indien nodig het script op uw lab-VM en voer het script opnieuw uit om te bevestigen dat de problemen zijn opgelost.

Artefactstructuur controleren

Een aangepast artefact moet de juiste structuur hebben. Controleer of aangepaste artefacten in het installatiescript voor artefacten de juiste structuur implementeren. De volgende bronnen bevatten informatie om u te helpen deze controle te voltooien:

  • Zie Aangepaste artefacten maken voor informatie over het correct samenstellen van een artefact.
  • Zie het artefact Parametertypen testen voor een voorbeeld van een correct gestructureerd artefact.
  • Zie ONTWERPEN voor meer informatie over het schrijven en corrigeren van artefactscripts.

Scriptupdate aanvragen

U kunt voorgestelde scriptcorrecties indienen voor artefacten die worden gehost in de openbare opslagplaats van DevTest Labs. Zie de sectie Bijdragen in het LEESMIJ-document voor meer informatie.

Ondersteuning krijgen

Als u meer hulp nodig hebt, kunt u een van de volgende ondersteuningskanalen proberen:

  • Zoek in de bronnen van de Microsoft Community-website naar informatie over Azure DevTest Labs en open berichten op Stack Overflow.

  • Maak verbinding met @AzureSupport, het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. Azure Support verbindt de Azure-community met antwoorden, ondersteuning en experts.