Udostępnij za pośrednictwem


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:

  1. Przejdź do strony Przegląd maszyny wirtualnej laboratorium DevTest Labs i upewnij się, że maszyna jest uruchomiona:

    Zrzut ekranu przedstawiający sposób potwierdzania, że maszyna wirtualna usługi DevTest Labs jest uruchomiona.

  2. Wybierz pozycję Artifacts (Artefakty) i otwórz listę artefaktów dla maszyny wirtualnej laboratorium:

    Zrzut ekranu przedstawiający sposób otwierania listy Artefakty dla maszyny wirtualnej laboratorium.

  3. Sprawdź opcję Zastosuj artefakty i upewnij się, że maszyna wirtualna laboratorium jest gotowa do akceptowania zastosowanych artefaktów:

    Zrzut ekranu przedstawiający sposób potwierdzania, że artefakty można zastosować do maszyny wirtualnej usługi DevTest Labs.

    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:

    Zrzut ekranu przedstawiający komunikat pokazujący, że artefakty nie mogą być stosowane do maszyny wirtualnej usługi DevTest Labs.

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:

  1. Przejdź do strony listy Artefakty dla maszyny wirtualnej laboratorium i wybierz artefakt ze stanem Niepowodzenie :

    Zrzut ekranu przedstawiający sposób lokalizowania i wybierania artefaktu, który zakończył się niepowodzeniem dla maszyny wirtualnej laboratorium.

  2. Zostanie otwarty widok Szczegóły artefaktu . Szczegóły obejmują informacje o komunikacie wdrożenia i komunikacie rozszerzenia o niepowodzeniu artefaktu:

    Zrzut ekranu przedstawiający szczegóły artefaktu, w tym informacje o wdrożeniu i komunikacie rozszerzenia.

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:

  1. Przejdź do strony Dziennik aktywności dla maszyny wirtualnej laboratorium i znajdź artefakt ze stanem Niepowodzenie:

    Zrzut ekranu przedstawiający sposób lokalizowania wpisu dziennika aktywności dla artefaktu, który zakończył się niepowodzeniem na maszynie wirtualnej laboratorium.

  2. 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:

    Zrzut ekranu przedstawiający sposób wyświetlania szczegółów wpisu dziennika aktywności dla artefaktu, który zakończył się niepowodzeniem.

  3. W okienku szczegółów wybierz pozycję JSON, aby przejrzeć zawartość ładunku JSON . Na końcu dokumentu JSON można zobaczyć błąd:

    Zrzut ekranu przedstawiający sposób wyświetlania szczegółów JSON wpisu dziennika aktywności dla artefaktu, który zakończył się niepowodzeniem.

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:

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

  2. Sprawdź wszystkie reguły sieciowej grupy zabezpieczeń:

  3. 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>#.

    1. Przejdź do strony Przegląd maszyny wirtualnej laboratorium DevTest Labs i wybierz pozycję Wizualizator zasobów.

    2. Na diagramie znajdź konto magazynu, które ma nazwę zgodną z opisaną konwencją nazewnictwa, a<labname>#.

    3. Wybierz zasób konta magazynu, aby wyświetlić menu podręczne, a następnie wybierz pozycję Wyświetl:

      Zrzut ekranu przedstawiający sposób wybierania opcji Wyświetl dla konta magazynu dla zasobu laboratorium DevTest Labs.

    4. Na stronie Przegląd konta magazynu rozwiń sekcję Zabezpieczenia i sieć w menu po lewej stronie i wybierz pozycję Sieć:

      Zrzut ekranu przedstawiający sposób wyświetlania konfiguracji sieci dla konta magazynu dla zasobu laboratorium DevTest Labs.

    5. Na karcie Zapory i sieci wirtualne sprawdź konfigurację opcji Dostęp do sieci publicznej:

      1. 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:

        Zrzut ekranu przedstawiający wybór opcji Włączone z wybranych sieci wirtualnych i adresów IP dla konta magazynu zasobów laboratorium.

      2. W przeciwnym razie upewnij się, że wybrano opcję Włączone ze wszystkich sieci :

        Zrzut ekranu przedstawiający opcję Włączone ze wszystkich sieci wybranych dla konta magazynu zasobów laboratorium.

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:

  1. Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.

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

    Zrzut ekranu przedstawiający zawartość folderu Status na maszynie wirtualnej z systemem Windows dla usługi DevTest Labs.

  3. 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:

  1. Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.

  2. Otwórz okno Eksplorator plików i przejdź do folderu zawierającego pliki dziennika dla maszyny wirtualnej laboratorium, takie jak C:\WindowsAzure\logs.

  3. Otwórz plik WaAppAgent.log.

  4. 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:

  1. Nawiąż połączenie z uruchomioną maszyną wirtualną laboratorium DevTest Labs.

  2. Otwórz okno Eksplorator plików.

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

  4. Otwórz okno wiersza polecenia z uprawnieniami administracyjnymi na maszynie wirtualnej.

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

  6. Ustal, czy skrypt demonstruje nieoczekiwane lub problematyczne zachowanie.

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

Żą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.