Sdílet prostřednictvím


Ř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 laboratorní virtuální počítače během jejich vytváření nebo po 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, že artefakty nelze nainstalovat a aplikovat v laboratoři, nebo že neproběhne jejich správné spuštění na virtuálním počítači laboratoře.

Když se zdá, že artefakt přestane reagovat, prvním krokem je zkusit zjistit, proč je proces zablokovaný. Instalaci artefaktu lze zablokovat během počátečního požadavku nebo může selhat během provádění požadavku. 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 nedaří úspěšně použít na váš virtuální počítač v laboratoři, můžete začít tím, že prozkoumáte stav svého virtuálního počítače v Azure Portálu. Můžete najít informace o stavu virtuálního počítače, potvrdit, že je spuštěný, a ověřit, že 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ích kroků 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 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. Výběrem artefaktů 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, který ukazuje, jak ověřit, že artefakty se dají použít na virtuální počítač DevTest Labs

    Když se možnost Použít artefakty zobrazí š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 s oznámením, že artefakty nejde použít na virtuální počítač DevTest Labs

Použití příkazu 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 $SubscriptionId parametr ID předplatného, parametr názvem testovacího $LabName/$VmName prostředí a názvem virtuálního počítače a $LabRgName parametr názvem vaší skupiny prostředků testovacího 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

Zkoumat podrobnosti o neúspěchu artefaktů

Artefakt může přestat odpovídat a nakonec se zobrazí jako Selhalo v seznamu artefaktů virtuálního počítače v testovacím prostředí.

Prozkoumejte neúspěšné artefakty provedením těchto 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í neúspěšný objekt u virtuálního počítače v testovacím prostředí

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

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

Kontrola protokolů aktivit

K nainstalování artefaktů DevTest Labs vytvoří a nasadí šablonu Azure Resource Manageru (ARM), která požaduje použití rozšíření pro vlastní skripty (CSE). V protokolech aktivit pro předplatné a skupinu prostředků, která obsahuje laboratořní virtuální počítač, se na této úrovni zobrazí chyba.

Note

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

Zkontrolujte selhání protokolu aktivit související s instalací nebo aplikací artefaktu na virtuálním počítači testovacího prostředí provedením následujících kroků:

  1. Přejděte na stránku protokolu aktivit virtuálního počítače 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 laboratorní VM, hledejte chyby, které souvisí se selháním procesu 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

Prozkoumejte repozitář artefaktů a účet ú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ě laboratoře, který se vytvoří, když se laboratoř poprvé inicializuje.

  • Pokud se nepovede nainstalovat vlastní artefakt, ujistěte se, že token PAT privátního úložiště nevypršel. 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á 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.
    

    K této chybě může dojít například v případě, že se provoz z virtuálního počítače zablokuje do služby Azure Storage. Tato chyba se zobrazí v protokolu aktivit skupiny prostředků pro labový virtuální počítač.

Pomocí následujícího postupu identifikujte problémy s připojením úložiště k účtu služby Azure Storage:

  1. Zkontrolujte přidání skupin zabezpečení sítě (NSG). Pokud se přidá zásada předplatného pro automatickou konfiguraci NSG 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čů v laboratoři.

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

  3. Zkontrolujte výchozí účet úložiště pro vaši laboratoř.

    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: a<labname>#.

    1. Přejděte na stránku Přehled pro testovací prostředí DevTest 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. Umístěte ukazatel myši na prostředek úložiště, přesuňte ukazatel na ikonu i, aby se zobrazila vyskakovací nabídka, 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 pak 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 zobrazující možnost Povoleno ze všech sítí, která je vybrána pro účet úložiště 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 CSE

Prohlédněte si soubor protokolu CSE pro virtuální počítač s Windows provedením následujících kroků:

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

  2. V Průzkumníku souborů 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 , například 1.status, a zobrazte chybu.

Pokyny k vyhledání souborů protokolu na virtuálním počítači s Linuxem najdete v tématu Použití Azure CSE 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 sloužit k vyřízení požadavku na aplikaci artefaktů, může virtuální počítač testovacího prostředí potřebovat aktualizovat 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, jejichž inicializace trvá delší dobu.

Pomocí následujících kroků 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ému virtuálnímu počítači DevTest Labs.

  2. V Průzkumníku souborů přejděte do složky, která obsahuje soubory protokolu pro váš laboratorní virtuální počítač, například C:\WindowsAzure\logs.

  3. Otevřete soubor WaAppAgent.log.

  4. V souboru protokolu vyhledejte záznamy, které zobrazují spuštění VM Agenta, dokončení inicializace a odeslání prvního heartbeat. Prozkoumejte položky časových razítek v době výskytu 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. Došlo ke zpoždění, protože spuštění služby OOBE (Out-of-Box-Experience) trvalo dlouhou dobu. Dlouhá doba spuštění agenta virtuálního počítače způsobila, že komponenta přestala 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 zápisu instalačního skriptu artefaktu.

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é psát skripty, které můžou bezobslužně fungovat bez nutnosti zásahu uživatele.

Pomocí následujících kroků zjistěte, jestli skript způsobuje, že artefakt přestane reagovat:

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

  2. Otevřete Průzkumníka souborů.

  3. Přejděte do složky Download obsahující instalační skript artefaktu pro váš VM, 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 se skriptem v této složce pracovat nebo skript zkopírovat 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 .

Get support

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

  • Informace o službě Azure DevTest Labs a zobrazení příspěvků ve službě Stack Overflow najdete v komunitních zdrojích 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.