Rozwiązywanie problemów z artefaktami na maszynach wirtualnych laboratorium w usłudze Azure DevTest Labs
W tym artykule opisano możliwe przyczyny i kroki rozwiązywania problemów dotyczące błędów artefaktów w zasobach maszyny wirtualnej usługi Azure DevTest Labs.
Artefakty to narzędzia, akcje lub oprogramowanie, które można zainstalować na maszynach wirtualnych laboratorium podczas tworzenia maszyn wirtualnych lub po jego utworzeniu. Właściciele laboratoriów mogą wstępnie wybrać obowiązkowe artefakty , aby zastosować je do wszystkich maszyn wirtualnych laboratorium podczas tworzenia, a użytkownicy laboratorium mogą stosować artefakty do maszyn wirtualnych, których są właścicielami . Kilka możliwych problemów może spowodować niepowodzenie instalacji artefaktów i zastosowanie ich do laboratorium lub poprawne uruchomienie na maszynie wirtualnej laboratorium.
Gdy artefakt wydaje się przestać odpowiadać, pierwszym krokiem jest próba ustalenia, dlaczego proces jest zablokowany. Instalacja artefaktu może zostać zablokowana podczas początkowego żądania lub niepowodzenia podczas wykonywania żądania. Możesz rozwiązywać problemy z błędami artefaktów w witrynie Azure Portal lub z maszyny wirtualnej, na której występuje błąd artefaktu.
Rozwiązywanie problemów w witrynie Azure Portal
Jeśli artefakt nie jest pomyślnie stosowany do maszyny wirtualnej laboratorium, możesz rozpocząć od zbadania stanu maszyny wirtualnej w witrynie Azure Portal. Możesz znaleźć informacje o stanie maszyny wirtualnej, potwierdzić jej działanie i sprawdzić, czy można zastosować artefakty. Dane dziennika aktywności dla maszyny wirtualnej laboratorium zawierają wpisy dotyczące procesów instalacji. Możesz sprawdzić wpisy, aby znaleźć informacje o błędach artefaktów.
Sprawdzanie stanu maszyny wirtualnej
Sprawdź stan maszyny wirtualnej w witrynie Azure Portal, wykonując następujące kroki:
Przejdź do strony Przegląd maszyny wirtualnej laboratorium DevTest Labs i upewnij się, że maszyna jest uruchomiona:
Wybierz pozycję Artifacts (Artefakty) i otwórz listę artefaktów dla maszyny wirtualnej laboratorium:
Sprawdź opcję Zastosuj artefakty i upewnij się, że maszyna wirtualna laboratorium jest gotowa do akceptowania zastosowanych artefaktów:
Gdy opcja Zastosuj artefakty jest wyszarana, nie można zastosować artefaktów do maszyny wirtualnej laboratorium i na stronie zostanie wyświetlony komunikat z powiadomieniem:
Użyj polecenia programu PowerShell
Możesz również użyć programu Azure PowerShell, aby sprawdzić, czy maszyna wirtualna laboratorium może odbierać zastosowane artefakty.
Następujące GET
polecenie zwraca flagę canApplyArtifacts
z wartością True lub False. Aby uruchomić polecenie, zastąp $LabName/$VmName
parametr nazwą laboratorium i nazwą maszyny wirtualnej, a następnie określ grupę zasobów laboratorium w parametrze $LabRgName
.
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
Badanie szczegółów artefaktu, który zakończył się niepowodzeniem
Artefakt może przestać odpowiadać i ostatecznie być wyświetlany jako Niepowodzenie na liście artefaktów dla maszyny wirtualnej laboratorium.
Zbadaj artefakty, które zakończyły się niepowodzeniem, wykonując następujące kroki:
Przejdź do strony listy Artefakty dla maszyny wirtualnej laboratorium i wybierz artefakt ze stanem Niepowodzenie :
Zostanie otwarty widok Szczegóły artefaktu . Szczegóły obejmują informacje o komunikacie wdrożenia i komunikacie rozszerzenia o niepowodzeniu artefaktu:
Inspekcja dzienników aktywności
Aby zainstalować artefakty, usługa DevTest Labs tworzy i wdraża szablon usługi Azure Resource Manager (ARM), który żąda użycia rozszerzenia niestandardowego skryptu (CSE). Błąd na tym poziomie jest wyświetlany w dziennikach aktywności dla subskrypcji i dla grupy zasobów zawierającej maszynę wirtualną laboratorium.
Uwaga
Podczas wyświetlania dzienników aktywności może być konieczne rozwinięcie wpisów procesu instalacji, aby wyświetlić podsumowania błędów błędów.
Sprawdź wpisy dziennika aktywności pod kątem niepowodzeń związanych z instalacją lub aplikacją artefaktu na maszynie wirtualnej laboratorium, wykonując następujące kroki:
Przejdź do strony Dziennik aktywności dla maszyny wirtualnej laboratorium i znajdź artefakt ze stanem Niepowodzenie:
Wybierz wpis, aby otworzyć okienko szczegółów i wyświetlić informacje dziennika:
Jeśli próbujesz zastosować artefakt bezpośrednio do maszyny wirtualnej laboratorium, poszukaj błędów związanych z procesem instalacji tworzenie lub aktualizowanie rozszerzenia maszyny wirtualnej.
Jeśli tworzysz maszynę wirtualną i stosujesz artefakt podczas procesu, poszukaj błędów błędów zgłoszonych w procesie instalacji tworzenie lub aktualizowanie maszyny wirtualnej.
Tytuł okienka odpowiada tytułowi wpisu, na przykład Zastosuj artefakty do maszyny wirtualnej:
W okienku szczegółów wybierz pozycję JSON, aby przejrzeć zawartość ładunku JSON . Na końcu dokumentu JSON można zobaczyć błąd:
Badanie repozytorium artefaktów i konta magazynu laboratorium
Gdy usługa DevTest Labs stosuje artefakt, odczytuje konfigurację artefaktu i pliki z połączonych repozytoriów. Jeśli nie można zainstalować artefaktu lub zastosować go do maszyny wirtualnej laboratorium, problem może być związany z dostępem do repozytorium.
Domyślnie usługa DevTest Labs ma dostęp do publicznego repozytorium artefaktów usługi DevTest Labs. Możesz również połączyć laboratorium z prywatnym repozytorium, aby uzyskać dostęp do niestandardowych artefaktów. W zależności od konfiguracji maszyny wirtualne laboratorium mogą nie mieć bezpośredniego dostępu do repozytorium artefaktów. Usługa DevTest Labs buforuje artefakty na koncie magazynu laboratorium utworzonym podczas pierwszego inicjowania laboratorium.
Jeśli instalacja niestandardowego artefaktu nie powiedzie się, upewnij się, że osobisty token dostępu (PAT) dla repozytorium prywatnego nie wygasł. Jeśli token dostępu wygasł, artefakt nie znajduje się na liście, a wszystkie skrypty odwołujące się do artefaktów z tego repozytorium kończą się niepowodzeniem.
Jeśli dostęp do konta magazynu jest zablokowany, może zostać wyświetlony błąd podobny do tego przykładu:
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.
Scenariusz, w którym ten błąd może wystąpić, jest wtedy, gdy ruch jest blokowany z maszyny wirtualnej do usługi Azure Storage. Błąd jest wyświetlany w dzienniku aktywności grupy zasobów dla maszyny wirtualnej laboratorium.
Zidentyfikuj problemy z połączeniem repozytorium z kontem usługi Azure Storage, wykonując następujące kroki:
Sprawdź, czy dodano sieciowe grupy zabezpieczeń. Jeśli zasady subskrypcji zostaną dodane do automatycznego konfigurowania sieciowych grup zabezpieczeń we wszystkich sieciach wirtualnych, może to mieć wpływ na sieć wirtualną używaną do tworzenia maszyn wirtualnych laboratorium.
Sprawdź wszystkie reguły sieciowej grupy zabezpieczeń:
Użyj funkcji weryfikacji przepływu adresów IP, aby określić, czy reguła sieciowej grupy zabezpieczeń blokuje ruch do lub z maszyny wirtualnej.
Przejrzyj obowiązujące reguły grupy zabezpieczeń, aby upewnić się, że istnieje reguła zezwalania na ruch przychodzący sieciowej grupy zabezpieczeń. Aby uzyskać więcej informacji, zobacz Używanie obowiązujących reguł zabezpieczeń do rozwiązywania problemów z przepływem ruchu maszyny wirtualnej.
Sprawdź domyślne konto magazynu dla laboratorium.
Domyślne konto magazynu to pierwsze konto magazynu utworzone podczas tworzenia laboratorium. Nazwa zwykle zaczyna się literą "a" i kończy się cyfrą wielocyfrową, taką jak
a<labname>#
.Przejdź do strony Przegląd maszyny wirtualnej laboratorium DevTest Labs i wybierz pozycję Wizualizator zasobów.
Na diagramie znajdź konto magazynu, które ma nazwę zgodną z opisaną konwencją nazewnictwa,
a<labname>#
.Wybierz zasób konta magazynu, aby wyświetlić menu podręczne, a następnie wybierz pozycję Wyświetl:
Na stronie Przegląd konta magazynu rozwiń sekcję Zabezpieczenia i sieć w menu po lewej stronie i wybierz pozycję Sieć:
Na karcie Zapory i sieci wirtualne sprawdź konfigurację opcji Dostęp do sieci publicznej:
Jeśli wybrano opcję Włączone z wybranych sieci wirtualnych i adresów IP, upewnij się, że lista dozwolonych adresów IP zawiera sieci wirtualne laboratorium, których można użyć do tworzenia maszyn wirtualnych laboratorium:
W przeciwnym razie upewnij się, że wybrano opcję Włączone ze wszystkich sieci :
Aby uzyskać szczegółowe informacje na temat rozwiązywania problemów, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.
Rozwiązywanie problemów na maszynie laboratorium
Możesz nawiązać połączenie z maszyną wirtualną laboratorium, na której artefakt zakończył się niepowodzeniem i zbadać problem.
Inspekcja pliku dziennika rozszerzenia niestandardowego skryptu
Wyświetl plik dziennika rozszerzenia niestandardowego skryptu (CSE) dla maszyny wirtualnej z systemem Windows, wykonując następujące kroki:
Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.
Otwórz okno Eksplorator plików i przejdź do folderu C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\CSE version>\<Status\. Przykładowa <wersja> CSE to
1.10.12
.Otwórz i sprawdź plik STATUS , aby wyświetlić błąd, taki jak 1.status.
Aby uzyskać instrukcje dotyczące znajdowania plików dziennika na maszynie wirtualnej z systemem Linux , zobacz Używanie rozszerzenia niestandardowego skryptu platformy Azure w wersji 2 z maszynami wirtualnymi z systemem Linux.
Sprawdzanie agenta maszyny wirtualnej platformy Azure
Upewnij się, że agent maszyny wirtualnej platformy Azure dla maszyny wirtualnej laboratorium jest zainstalowany i gotowy.
Gdy maszyna wirtualna laboratorium jest uruchamiana po raz pierwszy lub gdy środowisko CSE najpierw instaluje żądanie zastosowania artefaktów, maszyna wirtualna laboratorium może wymagać uaktualnienia agenta maszyny wirtualnej lub zaczekać na zainicjowanie agenta maszyny wirtualnej. Agent maszyny wirtualnej może zależeć od usług, które mogą zająć dużo czasu, aby zainicjować.
Ustal, czy agent maszyny wirtualnej powoduje, że artefakt przestaje odpowiadać, wykonując następujące kroki:
Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.
Otwórz okno Eksplorator plików i przejdź do folderu zawierającego pliki dziennika dla maszyny wirtualnej laboratorium, takie jak C:\WindowsAzure\logs.
Otwórz plik WaAppAgent.log.
W pliku dziennika poszukaj wpisów pokazujących uruchamianie agenta maszyny wirtualnej, kończenie inicjowania i wysyłanie pierwszego pulsu. Skanuj wpisy pod kątem sygnatur czasowych w czasie, gdy wystąpił problem z artefaktem. Poniższy fragment kodu przedstawia przykładowe wpisy z pliku dziennika:
[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.
W tym przykładzie uruchomienie agenta maszyny wirtualnej trwało 10 minut i 20 sekund. Opóźnienie jest spowodowane tym, że uruchomienie usługi out-of-box-experience (OOBE) trwało długo. Długi czas rozpoczęcia agenta maszyny wirtualnej spowodował, że artefakt przestał odpowiadać.
Aby uzyskać ogólne informacje na temat rozszerzeń platformy Azure, zobacz Rozszerzenia i funkcje maszyn wirtualnych platformy Azure. Aby uzyskać więcej pomysłów na rozwiązywanie problemów, zobacz Omówienie agenta maszyny wirtualnej platformy Azure.
Badanie problemów ze skryptami
Innym powodem, dla którego instalacja artefaktu może zakończyć się niepowodzeniem, jest sposób tworzenia skryptu instalacji artefaktu.
Oto kilka przykładów potencjalnych problemów ze skryptami:
Skrypt ma obowiązkowe parametry, ale oczekiwana wartość nie jest przekazywana podczas wykonywania skryptu. Ten scenariusz może wystąpić, jeśli użytkownik może pozostawić oczekiwany parametr pusty, a wartość domyślna nie jest określona w pliku definicji artifactfile.json . W związku z tym skrypt przestaje odpowiadać, ponieważ oczekuje na dane wejściowe użytkownika. Jeśli skrypt wymaga wartości parametrów, dobrym rozwiązaniem jest zdefiniowanie wartości domyślnych i wymaganie od użytkownika wprowadzenia wartości.
Skrypt wymaga akcji użytkownika podczas wykonywania skryptu. Ten scenariusz może wystąpić, jeśli podczas oczekiwania na podjęcie akcji przez użytkownika występuje duże opóźnienie w wykonywaniu skryptu. Dobrym rozwiązaniem jest tworzenie skryptów, które mogą działać dyskretnie bez konieczności interwencji użytkownika.
Ustal, czy skrypt powoduje, że artefakt przestaje odpowiadać, wykonując następujące kroki:
Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.
Otwórz okno Eksplorator plików.
Przejdź do folderu Pobierz , który zawiera skrypt instalacji artefaktu dla maszyny wirtualnej, taki jak C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Przykładowa <wersja> CSE to
1.10.12
.W kolejnych krokach możesz pracować ze skryptem w tym folderze lub skopiować skrypt do folderu roboczego na maszynie wirtualnej.
Otwórz okno wiersza polecenia z uprawnieniami administracyjnymi na maszynie wirtualnej.
Uruchom skrypt instalacji artefaktu w oknie wiersza polecenia.
Postępuj zgodnie z monitami skryptu i wprowadź wymagane wartości parametrów. Aby sprawdzić, czy brak danych wejściowych lub opóźnionych akcji użytkownika powoduje problem, spróbuj odtworzyć określone zachowanie.
Ustal, czy skrypt demonstruje nieoczekiwane lub problematyczne zachowanie.
W razie potrzeby popraw skrypt na maszynie wirtualnej laboratorium i uruchom skrypt ponownie, aby potwierdzić, że problemy zostały rozwiązane.
Sprawdzanie struktury artefaktów
Artefakt niestandardowy musi mieć odpowiednią strukturę. Upewnij się, że niestandardowe artefakty w skrypecie instalacji artefaktu implementują poprawną strukturę. Następujące zasoby zawierają informacje ułatwiające wykonanie tej kontroli:
- Aby uzyskać informacje na temat prawidłowego konstruowania artefaktu, zobacz Tworzenie artefaktów niestandardowych.
- Aby zapoznać się z przykładem prawidłowo ustrukturyzowanego artefaktu, zobacz artefakt Typy parametrów testowych.
- Aby uzyskać więcej informacji na temat pisania i poprawiania skryptów artefaktów, zobacz AUTHORING (TWORZENIE).
Żądanie aktualizacji skryptu
Proponowane poprawki skryptów można przesłać dla artefaktów hostowanych w publicznym repozytorium usługi DevTest Labs. Aby uzyskać szczegółowe informacje, zobacz sekcję Współtworzenie w dokumencie README .
Uzyskiwanie pomocy technicznej
Jeśli potrzebujesz dodatkowej pomocy, wypróbuj jeden z następujących kanałów pomocy technicznej:
Przeszukaj zasoby witryny internetowej Społeczności firmy Microsoft, aby uzyskać informacje o usłudze Azure DevTest Labs i wpisach dostępu w witrynie Stack Overflow.
Połącz się z @AzureSupport oficjalnym kontem platformy Microsoft Azure, aby poprawić jakość obsługi klienta. Pomoc techniczna platformy Azure łączy społeczność platformy Azure z odpowiedziami, pomocą techniczną i ekspertami.