Řešení potíží s artefakty na virtuálních počítačích testovacích prostředí ve službě Azure DevTest Labs

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

Artefakty jsou nástroje, akce nebo software, které můžete nainstalovat na testovací virtuální počítače během vytváření nebo po jeho vytvoření. Vlastníci testovacího prostředí můžou předem vybrat povinné artefakty , které se použijí pro všechny virtuální počítače testovacího prostředí při vytváření, a uživatelé testovacího prostředí můžou použít artefakty na virtuální počítače , které vlastní. Několik možných problémů může způsobit selhání instalace artefaktů a použití v testovacím prostředí nebo správné spuštění na virtuálním počítači testovacího prostředí.

Když se zdá, že artefakt přestane reagovat, prvním krokem je zkusit zjistit, proč je proces zablokovaný. Během počátečního požadavku je možné zablokovat instalaci artefaktů nebo během provádění požadavku selhat. Selhání artefaktů můžete řešit na webu Azure Portal nebo na virtuálním počítači, ve kterém dochází k selhání artefaktů.

Řešení potíží na webu Azure Portal

Pokud se artefakt úspěšně nepoužije na virtuální počítač testovacího prostředí, můžete začít zkoumáním stavu virtuálního počítače na webu Azure Portal. Můžete najít informace o stavu virtuálního počítače, potvrdit, že je spuštěný, a ověřit, jestli je možné použít artefakty. Data protokolu aktivit pro virtuální počítač testovacího prostředí zobrazují položky týkající se procesů instalace. Můžete zkontrolovat položky a vyhledat informace o selhání artefaktů.

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

Pomocí následujícího postupu zkontrolujte stav virtuálního počítače na webu Azure Portal:

  1. Přejděte na stránku Přehled virtuálního počítače devTest Labs labs a ověřte, že je počítač spuštěný:

    Snímek obrazovky, který ukazuje, jak ověřit, že je virtuální počítač DevTest Labs spuštěný

  2. Vyberte Artefakty a otevřete seznam artefaktů pro virtuální počítač testovacího prostředí:

    Snímek obrazovky, který ukazuje, jak otevřít seznam artefaktů pro virtuální počítač testovacího prostředí

  3. Zkontrolujte možnost Použít artefakty a ověřte, že je virtuální počítač testovacího prostředí připravený k přijetí použitých artefaktů:

    Snímek obrazovky znázorňující, jak ověřit artefakty, které se dají použít na virtuální počítač DevTest Labs

    Když je možnost Použít artefakty zobrazená šedě, nemůžete na virtuální počítač testovacího prostředí použít artefakty a na stránce se zobrazí zpráva s oznámením:

    Snímek obrazovky se zprávou, která zobrazuje artefakty, nejde použít na virtuální počítač DevTest Labs

Použijte tento příkaz PowerShellu:

Pomocí Azure PowerShellu můžete také zkontrolovat, jestli váš testovací virtuální počítač může přijímat použité artefakty.

Následující GET příkaz vrátí canApplyArtifacts příznak s hodnotou True nebo False. Pokud chcete příkaz spustit, nahraďte $LabName/$VmName parametr názvem testovacího prostředí a názvem virtuálního počítače a v parametru zadejte skupinu prostředků testovacího $LabRgName prostředí.

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

Zkoumání podrobností o neúspěšných artefaktech

Artefakt může přestat reagovat a nakonec se v seznamu artefaktů virtuálního počítače testovacího prostředí zobrazit jako selhání .

Prozkoumejte neúspěšné artefakty pomocí následujících kroků:

  1. Přejděte na stránku seznamu Artefakty pro virtuální počítač testovacího prostředí a vyberte artefakt se stavem Selhání :

    Snímek obrazovky znázorňující, jak vyhledat a vybrat artefakt, který selhal pro virtuální počítač testovacího prostředí

  2. Otevře se zobrazení podrobností artefaktu . Podrobnosti zahrnují informace o zprávě o nasazení a zprávě rozšíření o selhání artefaktu:

    Snímek obrazovky s podrobnostmi o neúspěšném artefaktu, včetně informací o zprávě o nasazení a rozšíření

Kontrola protokolů aktivit

K instalaci artefaktů vytvoří a nasadí šablonu Azure Resource Manageru (ARM), která požaduje použití rozšíření vlastních skriptů (CSE). Chyba na této úrovni se zobrazí v protokolech aktivit pro předplatné a pro skupinu prostředků, která obsahuje virtuální počítač testovacího prostředí.

Poznámka:

Když zobrazíte protokoly aktivit, možná budete muset rozbalit položky procesu instalace, aby se zobrazily souhrny chyb selhání.

Zkontrolujte chyby protokolu aktivit související s instalací nebo aplikací artefaktu na virtuálním počítači testovacího prostředí pomocí následujícího postupu:

  1. Přejděte na stránku protokolu aktivit pro virtuální počítač testovacího prostředí a vyhledejte artefakt se stavem Selhání :

    Snímek obrazovky, který ukazuje, jak najít položku protokolu aktivit pro artefakt, který selhal, na virtuálním počítači testovacího prostředí

  2. Výběrem položky otevřete podokno podrobností a zobrazte informace protokolu:

    • Pokud se pokoušíte použít artefakt přímo na virtuální počítač testovacího prostředí, vyhledejte chyby selhání související s procesem instalace rozšíření pro vytvoření nebo aktualizaci virtuálního počítače.

    • Pokud vytváříte virtuální počítač a používáte artefakt během procesu, vyhledejte chyby selhání hlášené pro proces instalace vytvoření nebo aktualizace virtuálního počítače .

    Název podokna odpovídá názvu položky, například Použít artefakty na virtuální počítač:

    Snímek obrazovky znázorňující, jak zobrazit podrobnosti o položce protokolu aktivit pro neúspěšný artefakt

  3. V podokně podrobností vyberte JSON a zkontrolujte obsah datové části JSON. Na konci dokumentu JSON se zobrazí chyba:

    Snímek obrazovky, který ukazuje, jak zobrazit podrobnosti JSON pro položku protokolu aktivit pro neúspěšný artefakt

Zkoumání úložiště 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šť. Pokud se artefakt nepodaří nainstalovat nebo použít pro virtuální počítač testovacího prostředí, může problém souviset s přístupem k úložišti.

Ve výchozím nastavení má DevTest Labs přístup k veřejnému úložišti artefaktů DevTest Labs. Můžete také připojit testovací prostředí k privátnímu úložišti pro přístup k vlastním artefaktům. 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í vytvořeném při prvním inicializaci testovacího prostředí.

  • Pokud se nepovede nainstalovat vlastní artefakt, ujistěte se, že nevypršela platnost tokenu PAT (Personal Access Token) privátního úložiště. Pokud vypršela platnost tokenu PAT, artefakt není uvedený a všechny skripty, které odkazují na artefakty z tohoto úložiště, selžou.

  • Pokud je přístup k účtu úložiště zablokovaný, může se zobrazit chyba podobná tomuto příkladu:

    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.
    

    Scénář, kdy k této chybě může dojít, je situace, kdy je provoz z virtuálního počítače do služby Azure Storage blokovaný. Tato chyba se zobrazí v protokolu aktivit skupiny prostředků pro virtuální počítač testovacího prostředí.

Při identifikaci problémů s připojením úložiště k účtu Azure Storage postupujte následovně:

  1. Zkontrolujte přidání skupin zabezpečení sítě (NSG). Pokud se přidá zásada předplatného pro automatickou konfiguraci skupin zabezpečení sítě ve všech virtuálních sítích, může to mít vliv na virtuální síť používanou k vytvoření virtuálních počítačů testovacího prostředí.

  2. Ověřte všechna pravidla NSG:

  3. Zkontrolujte výchozí účet úložiště pro vaše testovací prostředí.

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

    1. Přejděte na stránku Přehled virtuálního počítače devTest Labs labs a vyberte Vizualizér prostředků.

    2. V diagramu vyhledejte účet úložiště, který má název, který odpovídá popsané konvenci pojmenování. a<labname>#

    3. Výběrem prostředku účtu úložiště zobrazte místní nabídku a pak vyberte Zobrazit:

      Snímek obrazovky, který ukazuje, jak vybrat možnost Zobrazení pro účet úložiště pro prostředek testovacího prostředí DevTest Labs

    4. Na stránce Přehled účtu úložiště rozbalte v nabídce vlevo část Zabezpečení a sítě a vyberte Sítě:

      Snímek obrazovky, který ukazuje, jak zobrazit konfiguraci sítě pro účet úložiště pro prostředek testovacího prostředí DevTest Labs

    5. Na kartě Brány firewall a virtuální sítě zkontrolujte konfiguraci možnosti přístupu k veřejné síti:

      1. Pokud je vybraná možnost Povoleno z vybraných virtuálních sítí a IP adres , ověřte, že seznam povolených IP adres zobrazuje virtuální sítě testovacího prostředí, které je možné použít k vytvoření virtuálních počítačů testovacího prostředí:

        Snímek obrazovky znázorňující výběr Povolené z vybraných virtuálních sítí a IP adres pro účet úložiště prostředků testovacího prostředí

      2. V opačném případě potvrďte, že je zaškrtnuté políčko Povoleno ze všech sítí :

        Snímek obrazovky znázorňující výběr Povolené ze všech sítí pro účet úložiště prostředků testovacího prostředí

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

Řešení potíží na testovacím počítači

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

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

Následujícím postupem zobrazte soubor protokolu rozšíření vlastních skriptů (CSE) pro virtuální počítač s Windows:

  1. Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.

  2. Otevřete okno Průzkumník souborů a přejděte na C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Příkladem <verze> CSE je 1.10.12.

    Snímek obrazovky znázorňující obsah složky Stav na virtuálním počítači s Windows pro DevTest Labs

  3. Otevřete a zkontrolujte soubor STATUS a zobrazte chybu, například 1.status.

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 Azure

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

Při prvním spuštění virtuálního počítače testovacího prostředí nebo při první instalaci csE, která bude poskytovat požadavek na použití artefaktů, může virtuální počítač testovacího prostředí potřebovat 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é inicializují delší dobu.

Pomocí následujícího postupu zjistěte, jestli agent virtuálního počítače způsobuje, že artefakt přestane reagovat:

  1. Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.

  2. Otevřete okno Průzkumník souborů a přejděte do složky, ve které jsou soubory protokolu pro virtuální počítač testovacího prostředí, například C:\WindowsAzure\logs.

  3. Otevřete soubor WaAppAgent.log.

  4. V souboru protokolu vyhledejte položky, které zobrazují spuštění agenta virtuálního počítače, dokončení inicializace a odeslání prvního prezenčních signálu. Prohledejte položky časových razítek v době, kdy došlo k problému s artefaktem. Následující fragment kódu ukazuje některé ukázkové položky ze souboru protokolu:

    [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 tomto příkladu trvalo spuštění agenta virtuálního počítače 10 minut a 20 sekund. Zpoždění spočívá v tom, že spuštění služby OOBE (Out-of-Box-Experience) trvalo dlouhou dobu. Doba dlouhého spuštění agenta virtuálního počítače způsobila, že artefakt přestal reagovat.

Obecné informace o rozšířeních Azure najdete v tématu Rozšíření a funkce virtuálních počítačů Azure. Další nápady na řešení potíží najdete v přehledu agenta virtuálního počítače Azure.

Zkoumání problémů se skripty

Dalším důvodem, proč instalace artefaktů může selhat, je způsob vytváření instalačního skriptu artefaktů.

Tady je několik příkladů potenciálních problémů se skripty:

  • Skript má povinné parametry, ale očekávaná hodnota se během provádění skriptu nepředá. K tomuto scénáři může dojít v případě, že uživatel může nechat očekávaný parametr prázdný a výchozí hodnota není zadaná v definičním souboru artifactfile.json . Skript proto přestane reagovat, protože čeká na vstup uživatele. Pokud skript vyžaduje hodnoty parametrů, je vhodné definovat výchozí hodnoty a vyžadovat, aby uživatel zadal hodnotu.

  • Skript vyžaduje akci uživatele během provádění skriptu. K tomuto scénáři může dojít v případě, že při čekání na provedení skriptu dojde k dlouhému zpoždění při čekání na provedení akce uživatele. Je vhodné vytvářet skripty, které můžou bez zásahu uživatele bezobslužně fungovat.

Pomocí následujícího postupu zjistěte, jestli skript způsobuje zastavení reakce artefaktu:

  1. Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.

  2. Otevřete okno Průzkumník souborů.

  3. Přejděte do složky Pro stažení s instalačním skriptem artefaktů pro váš virtuální počítač, například C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Příkladem <verze> CSE je 1.10.12.

    V dalších krocích můžete pracovat se skriptem v této složce nebo zkopírovat skript do pracovní složky na virtuálním počítači.

  4. Otevřete okno příkazového řádku s oprávněními správce na virtuálním počítači.

  5. Spusťte instalační skript artefaktu v okně příkazového řádku.

    Postupujte podle pokynů skriptu a zadejte požadované hodnoty parametrů. Pokud chcete zjistit, jestli nedostatek uživatelského vstupu nebo zpožděná akce uživatele způsobí problém, zkuste konkrétní chování reprodukovat.

  6. Zjistěte, jestli skript demonstruje neočekávané nebo problematické chování.

  7. Podle potřeby opravte skript na virtuálním počítači testovacího prostředí a spusťte ho znovu, abyste ověřili, že jsou problémy vyřešené.

Kontrola struktury artefaktů

Vlastní artefakt musí mít správnou strukturu. Ujistěte se, že vlastní artefakty ve skriptu instalace artefaktů implementují správnou strukturu. Následující zdroje informací poskytují informace, které vám pomůžou provést tuto kontrolu:

Žádost o aktualizaci skriptu

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 .

Získání podpory

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

  • Informace o službě Azure DevTest Labs a přístup k příspěvkům ve službě Stack Overflow najdete na webu komunity Microsoftu.

  • Spojte se s @AzureSupport, oficiálním účtem Microsoft Azure pro zlepšení uživatelského prostředí. Podpora Azure propojuje komunitu Azure s odpověďmi, podporou a odborníky.