Řešení potíží s používáním artefaktů na virtuálních počítačích DevTest Labs

Tento článek vás provede možnými příčinami selhání artefaktů na virtuálních počítačích Azure DevTest Labs a postupem při řešení potíží.

Artefakty jsou nástroje, akce nebo software, který můžete nainstalovat na virtuální počítače testovacího prostředí během vytváření virtuálního počítače nebo po jeho vytvoření. Vlastníci testovacího prostředí můžou předem vybrat povinné artefakty , které se použijí u všech virtuálních počítačů testovacího prostředí při jejich vytvoření, a uživatelé testovacího prostředí můžou artefakty použít na virtuální počítače , které vlastní.

Artefakty se nedaří správně nainstalovat nebo spustit z několika důvodů. Když se zdá, že artefakt přestane reagovat, nejprve se pokuste zjistit, kde je zablokovaný. Instalace artefaktů může být blokovaná během počátečního požadavku nebo může selhat během provádění požadavku.

Můžete řešit potíže se selháním artefaktů z Azure Portal nebo virtuálního počítače, kde artefakt selhal.

Řešení potíží se selháním artefaktů z Azure Portal

Pokud nemůžete použít artefakt na virtuální počítač, nejprve zkontrolujte následující položky v Azure Portal:

  • Ujistěte se, že je virtuální počítač spuštěný.
  • Přejděte na stránku Artifacts (Artefakty ) pro virtuální počítač testovacího prostředí a ujistěte se, že je virtuální počítač připravený na použití artefaktů. Pokud funkce Použít artefakty není dostupná, zobrazí se v horní části stránky zpráva.

Použití příkazu PowerShellu

K určení, jestli virtuální počítač může používat artefakty, můžete použít také Azure PowerShell. Zkontrolujte příznak canApplyArtifacts, který se vrátí při rozbalení GET operace. Příklad:

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

Prozkoumání artefaktu, který selhal

Artefakt může přestat reagovat a nakonec se může zobrazit jako neúspěšný. Zkoumání artefaktů, které selhaly:

  1. Na stránce Přehled testovacího prostředí v seznamu Moje virtuální počítače vyberte virtuální počítač s artefaktem, který chcete prozkoumat.

  2. Na stránce Přehled virtuálního počítače v levém navigačním panelu vyberte Artefakty . Stránka Artifacts (Artefakty ) obsahuje seznam artefaktů přidružených k virtuálnímu počítači a jejich stav.

    Snímek obrazovky se seznamem artefaktů a jejich stavem

  3. Vyberte artefakt, který zobrazuje stav Selhání . Artefakt se otevře se zprávou rozšíření, která obsahuje podrobnosti o selhání artefaktu.

    Snímek obrazovky s chybovou zprávou pro neúspěšný artefakt

Kontrola protokolů aktivit

Aby bylo možné nainstalovat artefakty, DevTest Labs vytvoří a nasadí šablonu Azure Resource Manager (ARM), která požaduje použití rozšíření vlastních skriptů (CSE). V protokolech aktivit předplatného a skupiny prostředků virtuálního počítače se zobrazí chyba na této úrovni.

Pokud se nepodařilo nainstalovat artefakt, zkontrolujte v položkách protokolu aktivit buď možnost Vytvořit nebo Aktualizovat rozšíření virtuálního počítače, pokud jste použili artefakt přímo, nebo vytvořit nebo aktualizovat virtuální počítač, pokud se artefakt použil při vytváření virtuálního počítače. V těchto položkách vyhledejte chyby. Někdy musíte položku rozbalit, aby se chyba zobrazila.

Výběrem položky, která selhala, zobrazíte podrobnosti o chybě. Na stránce selhání vyberte JSON a zkontrolujte obsah datové části JSON. Tato chyba se zobrazí na konci dokumentu JSON.

Prozkoumání úložiště privátních artefaktů a účtu úložiště testovacího prostředí

Když DevTest Labs použije artefakt, přečte konfiguraci artefaktu a soubory z připojených úložišť. Ve výchozím nastavení má DevTest Labs přístup k veřejnému úložišti artefaktů DevTest Labs. Testovací prostředí můžete také připojit k privátnímu úložišti, abyste měli přístup k vlastním artefaktům. Pokud se vlastní artefakt nepodaří nainstalovat, ujistěte se, že nevypršela platnost tokenu PAT pro privátní úložiště. Pokud platnost tokenu PAT vypršela, artefakt se nezobrazí a všechny skripty, které odkazují na artefakty z tohoto úložiště, selžou.

V závislosti na konfiguraci nemusí mít virtuální počítače testovacího prostředí přímý přístup k úložišti artefaktů. DevTest Labs ukládá artefakty do mezipaměti v účtu úložiště testovacího prostředí, který se vytvoří při první inicializaci testovacího prostředí. Pokud je přístup k tomuto účtu úložiště zablokovaný, například při blokování provozu z virtuálního počítače do služby Azure Storage, může se zobrazit chyba podobná této:

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.

Tato chyba se zobrazí v protokolu aktivit skupiny prostředků virtuálního počítače.

Řešení potíží s připojením k účtu služby Azure Storage:

  • Zkontrolujte přidané skupiny zabezpečení sítě (NSG). Pokud se přidaly zásady předplatného, které automaticky nakonfigurují skupiny zabezpečení sítě ve všech virtuálních sítích, ovlivní to virtuální síť používanou k vytváření virtuálních počítačů testovacího prostředí.

  • Ověřte pravidla skupiny zabezpečení sítě. Pomocí ověření toku protokolu IP zjistěte, jestli pravidlo NSG neblokuje provoz do nebo z virtuálního počítače. Můžete také zkontrolovat platná pravidla skupin zabezpečení a ujistit se, že existuje příchozí pravidlo NSG, které povoluje skupiny zabezpečení sítě. Další informace najdete v tématu Řešení potíží s tokem provozu virtuálních počítačů pomocí platných pravidel zabezpečení.

  • Zkontrolujte výchozí účet úložiště testovacího prostředí. Výchozí účet úložiště je první účet úložiště vytvořený při vytvoření testovacího prostředí. Název obvykle začíná písmenem "a" a končí vícemístným číslem, například<labname>#.

    1. Přejděte do skupiny prostředků testovacího prostředí.
    2. Vyhledejte prostředek typu Účet úložiště , jehož název odpovídá konvenci.
    3. Na stránce Přehled účtu úložiště v levém navigačním panelu vyberte Sítě .
    4. Na kartě Brány firewall a virtuální sítě se ujistěte, že je přístup z veřejné sítě nastavený na Povoleno ze všech sítí. Nebo pokud je vybraná možnost Povoleno z vybraných virtuálních sítí a IP adres , ujistěte se, že jsou virtuální sítě testovacího prostředí použité k vytváření virtuálních počítačů přidané do seznamu.

Podrobné řešení potíží najdete v tématu Konfigurace virtuálních sítí a bran firewall služby Azure Storage.

Řešení potíží se selháními artefaktů na virtuálním počítači testovacího prostředí

Můžete se připojit k virtuálnímu počítači testovacího prostředí, kde artefakt selhal, a problém prozkoumat tam.

Kontrola souboru protokolu rozšíření vlastních skriptů

  1. Na virtuálním počítači testovacího prostředí přejděte do složky C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, kde *1.10.12* je číslo verze rozšíření vlastních skriptů.

    Snímek obrazovky se složkou Stav na virtuálním počítači testovacího prostředí

  2. Otevřete a zkontrolujte soubor STATUS , abyste zobrazili chybu.

Pokyny k vyhledání souborů protokolu na virtuálním počítači s Linuxem najdete v tématu Použití rozšíření vlastních skriptů Azure verze 2 s virtuálními počítači s Linuxem.

Kontrola agenta virtuálního počítače

Ujistěte se, že je agent virtuálního počítače Azure nainstalovaný a připravený.

Když se virtuální počítač poprvé spustí nebo když se rozšíření vlastních skriptů poprvé nainstaluje, aby obsloužilo požadavek na použití artefaktů, může být nutné upgradovat agenta virtuálního počítače nebo počkat na inicializaci agenta virtuálního počítače. Agent virtuálního počítače může záviset na službách, kterým inicializace trvá dlouhou dobu. Další informace o řešení potíží najdete v tématu Přehled agenta virtuálního počítače Azure.

Pokud chcete ověřit, jestli artefakt zdánlivě přestal reagovat kvůli agentu virtuálního počítače:

  1. Na virtuálním počítači testovacího prostředí přejděte do složky C:\WindowsAzure\logs.

  2. Otevřete soubor WaAppAgent.log.

  3. Vyhledejte položky, které zobrazují spuštění agenta virtuálního počítače, dokončení inicializace a první odeslaný prezenční signál v době, kdy došlo k problému s artefaktem.

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

V předchozím příkladu trvalo spuštění agenta virtuálního počítače 10 minut a 20 sekund. Příčinou bylo, že spuštění služby OOBE trvalo dlouhou dobu.

Obecné informace o rozšířeních Azure najdete v tématu Rozšíření a funkce virtuálních počítačů Azure.

Zkoumání problémů se skripty

Instalace artefaktu může selhat kvůli způsobu, jakým je vytvořený instalační skript artefaktů. Příklad:

  • Skript má povinné parametry, ale nepodaří se mu předat hodnotu, a to buď tím, že uživateli umožní nechat ji prázdnou, nebo protože v definičním souboru artifactfile.json není žádná výchozí hodnota. Skript přestane reagovat, protože čeká na vstup uživatele.

  • Skript vyžaduje jako součást provádění uživatelský vstup. Skripty by měly fungovat bezobslužně bez zásahu uživatele.

Řešení potíží s tím, jestli skript způsobuje, že artefakt přestane reagovat:

  1. Zkopírujte skript na virtuální počítač nebo ho vyhledejte na virtuálním počítači v umístění pro stažení skriptu artefaktů C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Pomocí příkazového řádku pro správu spusťte skript na virtuálním počítači a zadejte stejné hodnoty parametrů, které způsobily problém.
  3. Zjistěte, jestli skript vykazuje nějaké nežádoucí chování. Pokud ano, požádejte o aktualizaci nebo opravte skript.

Tip

Můžete odeslat navrhované opravy skriptů pro artefakty hostované ve veřejném úložišti DevTest Labs. Podrobnosti najdete v části Příspěvky v dokumentu README .

Poznámka

Vlastní artefakt musí mít správnou strukturu. Informace o tom, jak správně sestavit artefakt, najdete v tématu Vytvoření vlastních artefaktů. Příklad správně strukturovaného artefaktu najdete v artefaktu Typy parametrů testu .

Další informace o psaní a opravách skriptů artefaktů najdete v tématu VYTVÁŘENÍ OBSAHU.

Další kroky

Pokud potřebujete další pomoc, vyzkoušejte jeden z následujících kanálů podpory:

  • Obraťte se na odborníky na Azure DevTest Labs na fórech MSDN Azure a Stack Overflow.
  • Získejte odpovědi od odborníků na Azure prostřednictvím fór Azure.
  • Spojte se s @AzureSupport, oficiálním účtem Microsoft Azure, který vylepšuje uživatelské prostředí. Podpora Azure propojuje komunitu Azure s odpověďmi, podporou a odborníky.
  • Přejděte na web podpora Azure a výběrem možnosti Odeslat lístek podpory vytvořte podpora Azure incident.