Share via


Problemen oplossen met het toepassen van artefacten op virtuele Machines van DevTest Labs

In dit artikel wordt u begeleid bij mogelijke oorzaken en stappen voor probleemoplossing voor artefactfouten op Azure DevTest Labs 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 verplichte artefacten vooraf selecteren die moeten worden toegepast op alle lab-VM's bij het maken, en labgebruikers kunnen artefacten toepassen op vm's die ze bezitten.

Er zijn verschillende mogelijke oorzaken voor het niet correct installeren of uitvoeren van artefacten. Wanneer een artefact niet meer reageert, probeert u eerst te bepalen waar het vastloopt. De installatie van artefacten kan worden geblokkeerd tijdens de eerste aanvraag of mislukken tijdens het uitvoeren van de aanvraag.

U kunt artefactfouten oplossen vanuit de Azure Portal of vanaf de VM waar het artefact is mislukt.

Problemen met artefactfouten van de Azure Portal oplossen

Als u een artefact niet kunt toepassen op een virtuele machine, controleert u eerst de volgende items in de Azure Portal:

  • Zorg ervoor dat de VM wordt uitgevoerd.
  • Ga naar de pagina Artefacten voor de lab-VM om te controleren of de VM gereed is voor het toepassen van artefacten. Als de functie Artefacten toepassen niet beschikbaar is, ziet u een bericht boven aan de pagina.

Een PowerShell-opdracht gebruiken

U kunt ook Azure PowerShell gebruiken om te bepalen of de VM artefacten kan toepassen. Inspecteer de vlag canApplyArtifacts, die wordt geretourneerd wanneer u een GET bewerking uitvouwt. Bijvoorbeeld:

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

Het mislukte artefact onderzoeken

Een artefact reageert mogelijk niet meer en wordt ten slotte weergegeven als Mislukt. Mislukte artefacten onderzoeken:

  1. Selecteer op de pagina Overzicht van uw lab in de lijst onder Mijn virtuele machines de VM met het artefact dat u wilt onderzoeken.

  2. Selecteer artefacten in de linkernavigatiebalk op de pagina VM-overzicht. Op de pagina Artefacten worden artefacten vermeld die zijn gekoppeld aan de VM en hun status.

    Schermopname van de lijst met artefacten en hun status.

  3. Selecteer het artefact dat de status Mislukt weergeeft. Het artefact wordt geopend met een extensiebericht met details over de artefactfout.

    Schermopname van het foutbericht voor een mislukt artefact.

De 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 van de VM.

Als een artefact niet kan worden geïnstalleerd, controleert u de vermeldingen in het activiteitenlogboek voor virtuele-machineextensie maken of bijwerken, als u het artefact rechtstreeks hebt toegepast, of virtuele machine maken of bijwerken, als het artefact werd toegepast als onderdeel van het maken van de VM. Zoek naar fouten onder deze vermeldingen. Soms moet u de vermelding uitvouwen om de fout te zien.

Selecteer de mislukte vermelding om de foutdetails te bekijken. Selecteer op de foutpagina JSON om de inhoud van de JSON-nettolading te controleren. U ziet de fout aan het einde van het JSON-document.

De opslagplaats voor privéartefacten en het labopslagaccount onderzoeken

Wanneer DevTest Labs een artefact toepast, worden de artefactconfiguratie en bestanden uit verbonden opslagplaatsen gelezen. Standaard heeft DevTest Labs toegang tot de openbare artefactopslagplaats van DevTest Labs. U kunt een lab ook verbinden met een privéopslagplaats voor toegang tot aangepaste artefacten. 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 weergegeven en mislukken scripts die verwijzen naar artefacten uit die opslagplaats.

Afhankelijk van de configuratie hebben lab-VM's mogelijk geen directe toegang tot de artefactopslagplaats. DevTest Labs slaat de artefacten in de cache op in een labopslagaccount dat wordt gemaakt wanneer het lab voor het eerst wordt geïnitialiseerd. Als de toegang tot dit opslagaccount wordt geblokkeerd, bijvoorbeeld wanneer verkeer van de VM naar de Azure Storage-service wordt geblokkeerd, ziet u mogelijk een fout die er ongeveer als volgt uitziet:

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.

Deze fout wordt weergegeven in het activiteitenlogboek van de resourcegroep van de VM.

Verbindingsproblemen met het Azure Storage-account oplossen:

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

  • Controleer NSG-regels. Gebruik IP-stroom controleren om te bepalen of verkeer naar of van een VM wordt geblokkeerd door een NSG-regel. U kunt ook effectieve beveiligingsgroepsregels controleren om ervoor te zorgen dat er een binnenkomende NSG-regel toestaan bestaat. Zie Using effective security rules to troubleshoot VM traffic flow (Effectieve beveiligingsregels gebruiken om problemen met de VM-verkeersstroom op te lossen) voor meer informatie.

  • Controleer het standaardopslagaccount van het lab. Het standaardopslagaccount is het eerste opslagaccount dat is gemaakt toen het lab werd gemaakt. De naam begint meestal met de letter 'a' en eindigt met een getal met meerdere cijfers, zoals een<labnaam>#.

    1. Navigeer naar de resourcegroep van het lab.
    2. Zoek de resource van het type Opslagaccount waarvan de naam overeenkomt met de conventie.
    3. Selecteer netwerken in het linkernavigatievenster op de pagina Overzicht van het opslagaccount.
    4. Controleer op het tabblad Firewalls en virtuele netwerken of Openbare netwerktoegang is ingesteld op Ingeschakeld vanuit alle netwerken. Als de optie Ingeschakeld op basis van geselecteerde virtuele netwerken en IP-adressen is geselecteerd, moet u ervoor zorgen dat de virtuele netwerken van het lab die worden gebruikt om VM's te maken, aan de lijst worden toegevoegd.

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

Problemen met artefactfouten van de lab-VM oplossen

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

Het logboekbestand van de aangepaste scriptextensie controleren

  1. Ga op de lab-VM naar C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, waarbij *1.10.12* het CSE-versienummer is.

    Schermopname van de map Status op het lab V M.

  2. Open en inspecteer het STATUS-bestand om de fout weer te geven.

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

De VM-agent controleren

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

Wanneer de 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 mogelijk de VM-agent upgraden of wachten tot de VM-agent is geïnitialiseerd. De VM-agent kan afhankelijk zijn van services die lang duren voordat ze zijn geïnitialiseerd. Zie Overzicht van Azure Virtual Machine Agent voor meer probleemoplossing.

Controleren of het artefact niet meer lijkt te reageren vanwege de VM-agent:

  1. Navigeer op de lab-VM naar C:\WindowsAzure\logs.

  2. Open het bestand WaAppAgent.log.

  3. Zoek naar vermeldingen die laten zien dat de VM-agent wordt gestart, de initialisatie wordt afgerond en de eerste verzonden heartbeat rond de tijd dat het probleem met het artefact is opgetreden.

    [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 het vorige voorbeeld duurde het starten van de VM-agent 10 minuten en 20 seconden. De oorzaak was dat het lang duurde voordat de OOBE-service werd gestart.

Zie Extensies en functies van virtuele Azure-machines voor algemene informatie over Azure-extensies.

Scriptproblemen onderzoeken

De installatie van het artefact kan mislukken vanwege de manier waarop het artefactinstallatiescript is gemaakt. Bijvoorbeeld:

  • Het script heeft verplichte parameters, maar kan geen waarde doorgeven, omdat de gebruiker deze leeg mag laten of omdat het definitiebestand artifactfile.json geen standaardwaarde bevat. Het script reageert niet meer omdat het wacht op gebruikersinvoer.

  • Voor het script is gebruikersinvoer vereist als onderdeel van de uitvoering. Scripts moeten op de achtergrond werken zonder tussenkomst van de gebruiker.

Los als volgt op of het script ervoor zorgt dat het artefact niet meer reageert:

  1. Kopieer het script naar de VM of zoek het op de VM in de downloadlocatie voor het artefactscript, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Voer met behulp van een beheerdersopdrachtprompt het script uit op de VM, waarbij u dezelfde parameterwaarden opgeeft die het probleem hebben veroorzaakt.
  3. Bepaal of het script ongewenst gedrag vertoont. Als dit het probleem is, vraagt u een update aan of corrigeert u het script.

Tip

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.

Notitie

Een aangepast artefact moet de juiste structuur hebben. Zie Aangepaste artefacten maken voor meer 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.

Volgende stappen

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

  • Neem contact op met de Azure DevTest Labs experts op de MSDN Azure- en Stack Overflow-forums.
  • Krijg antwoorden van Azure-experts via Azure-forums.
  • Maak verbinding met @AzureSupport, het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. Azure-ondersteuning verbindt de Azure-community met antwoorden, ondersteuning en experts.
  • Ga naar de ondersteuning voor Azure site en selecteer Een ondersteuningsticket indienen om een ondersteuning voor Azure-incident in te dienen.