Felsöka problem med att tillämpa artefakter på virtuella DevTest Labs-datorer

Den här artikeln vägleder dig genom möjliga orsaker och felsökningssteg för artefaktfel på Azure DevTest Labs virtuella datorer (VM).

Artefakter är verktyg, åtgärder eller programvara som du kan installera på virtuella labbdatorer under eller efter skapandet av den virtuella datorn. Labbägare kan välja obligatoriska artefakter som ska tillämpas på alla virtuella labbdatorer när de skapas, och labbanvändare kan tillämpa artefakter på virtuella datorer som de äger.

Det finns flera möjliga orsaker till att artefakter inte kan installeras eller köras korrekt. När en artefakt verkar sluta svara försöker du först ta reda på var den har fastnat. Artefaktinstallationen kan blockeras under den första begäran eller misslyckas under körningen av begäran.

Du kan felsöka artefaktfel från Azure Portal eller från den virtuella dator där artefakten misslyckades.

Felsöka artefaktfel från Azure Portal

Om du inte kan tillämpa en artefakt på en virtuell dator kontrollerar du först följande objekt i Azure Portal:

  • Kontrollera att den virtuella datorn körs.
  • Gå till sidan Artefakter för den virtuella labbdatorn för att kontrollera att den virtuella datorn är redo att använda artefakter. Om funktionen Använd artefakter inte är tillgänglig visas ett meddelande överst på sidan.

Använda ett PowerShell-kommando

Du kan också använda Azure PowerShell för att avgöra om den virtuella datorn kan använda artefakter. Granska flaggan canApplyArtifacts, som returneras när du expanderar en GET åtgärd. Exempel:

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

Undersöka den misslyckade artefakten

En artefakt kan sluta svara och visas slutligen som Misslyckad. Så här undersöker du misslyckade artefakter:

  1. På sidan Översikt för labbet går du till listan under Mina virtuella datorer och väljer den virtuella dator som har den artefakt som du vill undersöka.

  2. översiktssidan för den virtuella datorn väljer du Artefakter i det vänstra navigeringsfönstret. På sidan Artefakter visas artefakter som är associerade med den virtuella datorn och deras status.

    Skärmbild som visar listan över artefakter och deras status.

  3. Välj artefakten som visar statusen Misslyckades . Artefakten öppnas med ett tilläggsmeddelande som innehåller information om artefaktfelet.

    Skärmbild av felmeddelandet för en misslyckad artefakt.

Granska aktivitetsloggarna

För att installera artefakter skapar och distribuerar DevTest Labs en ARM-mall (Azure Resource Manager) som begär användning av CSE (Custom Script Extension). Ett fel på den här nivån visas i aktivitetsloggarna för prenumerationen och för den virtuella datorns resursgrupp.

Om det inte gick att installera en artefakt kontrollerar du aktivitetsloggposterna för antingen Skapa eller Uppdatera tillägg för virtuell dator, om du har tillämpat artefakten direkt, eller Skapa eller Uppdatera virtuell dator, om artefakten tillämpades som en del av skapandet av den virtuella datorn. Leta efter fel under dessa poster. Ibland måste du expandera posten för att se felet.

Välj den misslyckade posten för att se felinformationen. På felsidan väljer du JSON för att granska innehållet i JSON-nyttolasten. Du kan se felet i slutet av JSON-dokumentet.

Undersöka den privata artefaktlagringsplatsen och labblagringskontot

När DevTest Labs tillämpar en artefakt läser den artefaktkonfigurationen och filerna från anslutna lagringsplatser. Som standard har DevTest Labs åtkomst till den offentliga Artefaktlagringsplatsen för DevTest Labs. Du kan också ansluta ett labb till en privat lagringsplats för att få åtkomst till anpassade artefakter. Om en anpassad artefakt inte kan installeras kontrollerar du att den personliga åtkomsttoken (PAT) för den privata lagringsplatsen inte har upphört att gälla. Om PAT har upphört att gälla visas inte artefakten och skript som refererar till artefakter från den lagringsplatsen misslyckas.

Beroende på konfigurationen kanske de virtuella labbdatorerna inte har direkt åtkomst till artefaktlagringsplatsen. DevTest Labs cachelagrar artefakterna i ett labblagringskonto som skapas när labbet först initieras. Om åtkomsten till det här lagringskontot blockeras, till exempel när trafik blockeras från den virtuella datorn till Azure Storage-tjänsten, kan du se ett fel som liknar detta:

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.

Det här felet visas i aktivitetsloggen för den virtuella datorns resursgrupp.

Så här felsöker du anslutningsproblem till Azure Storage-kontot:

  • Sök efter tillagda nätverkssäkerhetsgrupper (NSG:er). Om en prenumerationsprincip lades till för att automatiskt konfigurera NSG:er i alla virtuella nätverk skulle det påverka det virtuella nätverk som används för att skapa virtuella labbdatorer.

  • Verifiera NSG-regler. Använd Kontrollera IP-flöde för att avgöra om en NSG-regel blockerar trafik till eller från en virtuell dator. Du kan också granska reglerna för effektiva säkerhetsgrupper för att se till att det finns en inkommande Tillåt NSG-regel. Mer information finns i Använda effektiva säkerhetsregler för att felsöka VM-trafikflödet.

  • Kontrollera labbets standardlagringskonto. Standardlagringskontot är det första lagringskontot som skapades när labbet skapades. Namnet börjar vanligtvis med bokstaven "a" och slutar med ett flersiffrigt tal, till exempel ett<labname>#.

    1. Gå till labbets resursgrupp.
    2. Leta upp resursen av typen Lagringskonto vars namn matchar konventionen.
    3. På sidan Översikt för lagringskontot väljer du Nätverk i det vänstra navigeringsfönstret.
    4. På fliken Brandväggar och virtuella nätverk kontrollerar du att Åtkomst till offentligt nätverk är inställd på Aktiverad från alla nätverk. Om alternativet Aktiverad från valda virtuella nätverk och IP-adresser har valts kontrollerar du att labbets virtuella nätverk som används för att skapa virtuella datorer har lagts till i listan.

Detaljerad felsökning finns i Konfigurera Azure Storage-brandväggar och virtuella nätverk.

Felsöka artefaktfel från den virtuella labbdatorn

Du kan ansluta till den virtuella labbdatorn där artefakten misslyckades och undersöka problemet där.

Granska loggfilen för det anpassade skripttillägget

  1. På den virtuella labbdatorn går du till C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, där *1.10.12* är CSE-versionsnumret.

    Skärmbild av mappen Status på labb-V M.

  2. Öppna och granska STATUS-filen för att visa felet.

Anvisningar om hur du hittar loggfilerna på en virtuell Linux-dator finns i Använda Azure Custom Script Extension Version 2 med virtuella Linux-datorer.

Kontrollera VM-agenten

Kontrollera att Azure Virtual Machine Agent (VM Agent) är installerad och klar.

När den virtuella datorn först startar, eller när CSE först installeras för att hantera begäran om att tillämpa artefakter, kan den virtuella datorn behöva uppgradera VM-agenten eller vänta tills VM-agenten har initierats. VM-agenten kan vara beroende av tjänster som tar lång tid att initiera. Mer felsökning finns i Översikt över Azure Virtual Machine Agent.

Så här kontrollerar du om artefakten verkade sluta svara på grund av VM-agenten:

  1. Gå till C:\WindowsAzure\logs på den virtuella labbdatorn.

  2. Öppna filen WaAppAgent.log.

  3. Leta efter poster som visar att VM-agenten startar, slutför initieringen och det första pulsslaget som skickas runt den tidpunkt då du upplevde artefaktproblemet.

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

I föregående exempel tog vm-agenten 10 minuter och 20 sekunder att starta. Orsaken var att OOBE-tjänsten tog lång tid att starta.

Allmän information om Azure-tillägg finns i Tillägg och funktioner för virtuella Azure-datorer.

Undersöka skriptproblem

Artefaktinstallationen kan misslyckas på grund av hur skriptet för artefaktinstallation skapas. Exempel:

  • Skriptet har obligatoriska parametrar men kan inte skicka ett värde, antingen genom att låta användaren lämna det tomt eller eftersom det inte finns något standardvärde i definitionsfilen artifactfile.json . Skriptet slutar svara eftersom det väntar på användarindata.

  • Skriptet kräver användarindata som en del av körningen. Skript bör fungera tyst utan att användaren behöver ingripa.

Så här felsöker du om skriptet får artefakten att sluta svara:

  1. Kopiera skriptet till den virtuella datorn eller leta upp det på den virtuella datorn på nedladdningsplatsen för artefaktskriptet, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Kör skriptet på den virtuella datorn med hjälp av en administrativ kommandotolk och ange samma parametervärden som orsakade problemet.
  3. Kontrollera om skriptet visar något oönskat beteende. I så fall begär du en uppdatering eller korrigerar skriptet.

Tips

Du kan skicka föreslagna skriptkorrigeringar för artefakter som finns på den offentliga Lagringsplatsen för DevTest Labs. Mer information finns i avsnittet Bidrag i README-dokumentet .

Anteckning

En anpassad artefakt måste ha rätt struktur. Information om hur du konstruerar en artefakt på rätt sätt finns i Skapa anpassade artefakter. Ett exempel på en korrekt strukturerad artefakt finns i artefakten Testparametertyper .

Mer information om hur du skriver och korrigerar artefaktskript finns i AUTHORING.

Nästa steg

Om du behöver mer hjälp kan du prova någon av följande supportkanaler: