Ř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:
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ý:
Vyberte Artefakty a otevřete seznam artefaktů pro virtuální počítač testovacího prostředí:
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ů:
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:
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ů:
Přejděte na stránku seznamu Artefakty pro virtuální počítač testovacího prostředí a vyberte artefakt se stavem Selhání :
Otevře se zobrazení podrobností artefaktu . Podrobnosti zahrnují informace o zprávě o nasazení a zprávě rozšíření o selhání artefaktu:
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:
Přejděte na stránku protokolu aktivit pro virtuální počítač testovacího prostředí a vyhledejte artefakt se stavem Selhání :
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č:
V podokně podrobností vyberte JSON a zkontrolujte obsah datové části JSON. Na konci dokumentu JSON se zobrazí chyba:
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ě:
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í.
Ověřte všechna pravidla NSG:
Pomocí ověření toku protokolu IP určete, jestli pravidlo NSG blokuje provoz do nebo z virtuálního počítače.
Zkontrolujte platná pravidla skupin zabezpečení a ujistěte se, že existuje příchozí pravidlo povolit NSG. Další informace najdete v tématu Použití efektivních pravidel zabezpečení k řešení potíží s tokem provozu virtuálního počítače.
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>#
.Přejděte na stránku Přehled virtuálního počítače devTest Labs labs a vyberte Vizualizér prostředků.
V diagramu vyhledejte účet úložiště, který má název, který odpovídá popsané konvenci pojmenování.
a<labname>#
Výběrem prostředku účtu úložiště zobrazte místní nabídku a pak vyberte Zobrazit:
Na stránce Přehled účtu úložiště rozbalte v nabídce vlevo část Zabezpečení a sítě a vyberte Sítě:
Na kartě Brány firewall a virtuální sítě zkontrolujte konfiguraci možnosti přístupu k veřejné síti:
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í:
V opačném případě potvrďte, že je zaškrtnuté políčko Povoleno ze všech sítí :
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:
Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.
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
.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:
Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.
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.
Otevřete soubor WaAppAgent.log.
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:
Připojte se ke svému spuštěném virtuálnímu počítači DevTest Labs Labs.
Otevřete okno Průzkumník souborů.
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.
Otevřete okno příkazového řádku s oprávněními správce na virtuálním počítači.
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.
Zjistěte, jestli skript demonstruje neočekávané nebo problematické chování.
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:
- Informace o tom, jak správně sestavit artefakt, naleznete v tématu Vytvoření vlastních artefaktů.
- Příklad správně strukturovaného artefaktu najdete v artefaktu typů parametrů testu.
- Další informace o psaní a opravě skriptů artefaktů najdete v tématu VYTVÁŘENÍ OBSAHU.
Žá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.