Fehlerbehebung für Artefakte auf virtuellen Labcomputern in Azure DevTest Labs
Dieser Artikel beschreibt mögliche Ursachen und Problembehandlungsschritte für Artefaktfehler auf Azure DevTest Labs-VM-Ressourcen.
Artefakte sind Tools, Aktionen oder Software, die Sie auf Lab-VMs während oder nach der Erstellung der VM installieren können. Labbesitzer können obligatorische Artefakte vorab auswählen, die bei der Erstellung auf alle Lab-VMs angewendet werden sollen, und Labbenutzer können Artefakte auf VMs anwenden, deren Besitzer sie sind. Mehrere mögliche Probleme können dazu führen, dass Artefakte in einem Lab nicht installiert und angewendet werden oder auf einer Lab-VM nicht ordnungsgemäß ausgeführt werden.
Wenn ein Artefakt scheinbar nicht mehr reagiert, besteht der erste Schritt darin, zu ermitteln, warum der Prozess hängen bleibt. Die Artefaktinstallation kann während der anfänglichen Anforderung blockiert werden oder während der Anforderungsausführung fehlschlagen. Sie können Artefaktfehler über das Azure-Portal oder von der VM aus beheben, auf der der Artefaktfehler aufgetreten ist.
Behandeln von Problemen im Azure-Portal
Wenn ein Artefakt nicht erfolgreich auf Ihre Lab-VM angewendet wird, können Sie damit beginnen, den Status Ihrer VM im Azure-Portal zu untersuchen. Hier können Sie Informationen zum Status der VM abrufen, bestätigen, dass sie ausgeführt wird, und überprüfen, ob Artefakte angewendet werden können. Die Aktivitätsprotokolldaten für die Lab-VM zeigen Einträge zu Installationsprozessen. Sie können die Einträge überprüfen, um Informationen zu Artefaktfehlern zu finden.
Überprüfen des VM-Status
Überprüfen Sie den VM-Status im Azure-Portal, indem Sie die folgenden Schritte ausführen:
Navigieren Sie zur Seite Übersicht für die Lab-VM in DevTest Labs, und vergewissern Sie sich, dass der Status des Computer Wird ausgeführt lautet:
Wählen Sie Artefakte aus, und öffnen Sie die Artefaktliste für die Lab-VM:
Überprüfen Sie die Option Artefakte anwenden, und vergewissern Sie sich, dass die Lab-VM bereit ist, angewendete Artefakte anzunehmen:
Wenn die Option Artefakte anwenden ausgegraut, können Sie Artefakte nicht auf die Lab-VM anwenden, und auf der Seite wird eine Benachrichtigung angezeigt:
Verwenden Sie den folgenden PowerShell-Befehl:
Sie können auch Azure PowerShell verwenden, um zu überprüfen, ob Ihre Lab-VM angewendete Artefakte empfangen kann.
Der folgende GET
-Befehl gibt das canApplyArtifacts
-Flag mit dem Wert „True“ oder „False“ zurück. Um den Befehl auszuführen, ersetzen Sie den $LabName/$VmName
-Parameter durch den Lab-Namen und den VM-Namen, und geben Sie die Lab-Ressourcengruppe im $LabRgName
-Parameter an.
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
Untersuchen der Details zu fehlgeschlagenen Artefakten
Ein Artefakt kann nicht mehr reagieren und schließlich als Fehlgeschlagen in der Artefaktliste für die Lab-VM angezeigt werden.
Untersuchen Sie fehlerhafte Artefakte, indem Sie die folgenden Schritte ausführen:
Navigieren Sie zur Listenseite Artefakte für die Lab-VM, und wählen Sie das Artefakt mit dem Status Fehlgeschlagen aus:
Die Detailansicht Artefakt wird geöffnet. Die Details umfassen Informationen zur Bereitstellungsnachricht und Erweiterungsmeldung für den Artefaktfehler:
Analysieren der Aktivitätsprotokolle
Zum Installieren von Artefakten wird eine eine Azure Resource Manager(ARM)-Vorlage von DevTest Labs erstellt und bereitgestellt, die anfordert, die benutzerdefinierte Skripterweiterung (Custom Script Extension, CSE) ausführen zu dürfen. Ein Fehler auf dieser Ebene wird in den Aktivitätsprotokollen für das Abonnement und für die Ressourcengruppe der Lab-VM angezeigt.
Hinweis
Wenn Sie die Aktivitätsprotokolle anzeigen, müssen Sie möglicherweise die Installationsvorgangseinträge erweitern, um die Fehlerzusammenfassungen anzuzeigen.
Überprüfen Sie die Aktivitätsprotokolleinträge auf Fehler im Zusammenhang mit der Installation oder Anwendung des Artefakts auf der Lab-VM. Führen Sie dazu die folgenden Schritte aus:
Navigieren Sie zur Seite Aktivitätsprotokoll für die Lab-VM, und suchen Sie das Artefakt mit dem Status Fehlgeschlagen:
Wählen Sie den Eintrag aus, um den Detailbereich zu öffnen und die Protokollinformationen anzuzeigen:
Wenn Sie versuchen, das Artefakt direkt auf Ihre Lab-VM anzuwenden, suchen Sie nach Fehlern im Zusammenhang mit dem Installationsprozess Erstellen oder Aktualisieren von VM-Erweiterungen.
Wenn Sie einen virtuellen Computer erstellen und das Artefakt während des Prozesses anwenden, suchen Sie nach Fehlern, die für den Installationsprozess Virtuellen Computer erstellen oder aktualisieren gemeldet wurden.
Der Bereichstitel entspricht dem Eintragstitel, z. B. Artefakte auf virtuellen Computer anwenden:
Wählen Sie im Detailbereich JSON aus, um den Inhalt der JSON-Payload zu überprüfen. Der Fehler wird am Ende des JSON-Dokuments angezeigt:
Untersuchen des Artefaktrepositorys und Lab-Speicherkontos
Wenn DevTest Labs ein Artefakt anwendet, liest es die Artefaktkonfiguration und die zugehörigen Dateien aus den konfigurierten Repositorys. Wenn ein Artefakt auf Ihrer Lab-VM nicht installiert oder angewendet werden kann, hängt das Problem möglicherweise mit dem Repositoryzugriff zusammen.
Standardmäßig hat DevTest Labs Zugriff auf das öffentliche Artefaktrepository von DevTest Labs. Sie können ein Lab auch mit einem privaten Repository verbinden, um auf benutzerdefinierte Artefakte zuzugreifen. Je nach Konfiguration haben Lab-VMs möglicherweise keinen direkten Zugriff auf das Artefaktrepository. DevTest Labs speichert die Artefakte in einem Lab-Speicherkonto zwischen, das bei der ersten Initialisierung des Labs erstellt wird.
Wenn ein benutzerdefiniertes Artefakt nicht installiert werden kann, stellen Sie sicher, dass das persönliche Zugriffstoken (Personal Access Token, PAT) für das private Repository nicht abgelaufen ist. Wenn das PAT abgelaufen ist, wird das Artefakt nicht aufgelistet, und alle Skripts, die auf Artefakte aus diesem Repository verweisen, schlagen fehl.
Wenn der Zugriff auf das Speicherkonto blockiert ist, wird möglicherweise ein Fehler wie in diesem Beispiel angezeigt:
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.
Ein Szenario, in dem dieser Fehler auftreten kann, ist, wenn Datenverkehr vom virtuellen Computer zum Azure Storage-Dienst blockiert wird. Dieser Fehler wird im Aktivitätsprotokoll der Ressourcengruppe der Lab-VM angezeigt.
Identifizieren Sie Probleme mit der Repositoryverbindung zum Azure Storage-Konto mit den folgenden Schritten:
Überprüfen Sie, ob Netzwerksicherheitsgruppen (NSGs) hinzugefügt wurden. Wenn eine Abonnementrichtlinie hinzugefügt wurde, durch die NSGs in allen virtuellen Netzwerken automatisch konfiguriert werden, kann sich dies auf das virtuelle Netzwerk auswirken, das zum Erstellen der Lab-VMs verwendet wird.
Überprüfen Sie alle NSG-Regeln:
Verwenden Sie die IP-Datenflussüberprüfung, um zu bestimmen, ob eine NSG-Regel den Datenverkehr zu oder von einer VM blockiert.
Überprüfen Sie die aktiven Sicherheitsgruppenregeln, um sicherzustellen, dass die NSG-Regel Zulassen für eingehende Verbindungen vorhanden ist. Weitere Informationen finden Sie unter Problembehandlung bei Netzwerksicherheitsgruppen über das Azure-Portal.
Überprüfen Sie das Standardspeicherkonto für das Lab.
Das Standardspeicherkonto ist das erste Speicherkonto, das beim Erstellen des Labs erstellt wurde. Der Name beginnt in der Regel mit dem Buchstaben „a“ und endet mit einer mehrstelligen Zahl, z. B.
a<labname>#
.Navigieren Sie zur Seite Übersicht für die Lab-VM in DevTest Labs, und wählen Sie Ressourcenschnellansicht aus.
Suchen Sie im Diagramm das Speicherkonto mit einem Namen, der der beschriebenen Benennungskonvention entspricht (
a<labname>#
).Wählen Sie die Speicherkonto-Ressource aus, um das Popupmenü anzuzeigen, und wählen Sie dann Anzeigen aus:
Erweitern Sie auf der Seite Übersicht des Speicherkontos den Abschnitt Sicherheit + Netzwerkbetrieb im linken Menü, und wählen Sie Netzwerk aus:
Überprüfen Sie auf der Registerkarte Firewalls und virtuelle Netzwerke die Konfiguration für die Option Öffentlicher Netzwerkzugriff:
Wenn Aktiviert von ausgewählten virtuellen Netzwerken und IP-Adressen ausgewählt ist, bestätigen Sie, dass die Liste der zulässigen IP-Adressen die virtuellen Netzwerke des Labs anzeigt, die zum Erstellen von Lab-VMs verwendet werden können:
Andernfalls bestätigen Sie, dass Von allen Netzwerken aus aktiviert ausgewählt ist:
Ausführlichere Informationen zur Problembehandlung finden Sie unter Konfigurieren von Azure Storage-Firewalls und virtuellen Netzwerken.
Problembehandlung auf dem Lab-Computer
Sie können eine Verbindung mit der Lab-VM herstellen, auf der das Artefakt fehlgeschlagen ist, und das Problem untersuchen.
Überprüfen der Protokolldatei für die benutzerdefinierte Skripterweiterung
Zeigen Sie die Protokolldatei für die benutzerdefinierte Skripterweiterung (Custom Script Extension, CSE) für einen virtuellen Windows-Computer an, indem Sie die folgenden Schritte ausführen:
Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.
Öffnen Sie ein Datei-Explorer-Fenster, und navigieren Sie zu C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE-Version>\Status\. Ein Beispiel für <CSE-Version> ist
1.10.12
.Öffnen Sie die STATUS-Datei, und überprüfen Sie sie, um den Fehler anzuzeigen, z. B. 1.status.
Anweisungen zum Suchen der Protokolldateien auf einer Linux-VM finden Sie unter Verwenden von Version 2 der Azure-Erweiterung für benutzerdefinierte Skripts mit Linux-VMs.
Überprüfen des Azure-Agents für virtuelle Computer
Stellen Sie sicher, dass der Azure-VM-Agent für Ihre Lab-VM installiert und bereit ist.
Beim ersten Start der VM oder wenn die CSE installiert wird, um die Anforderung zum Anwenden von Artefakten zu erfüllen, muss die Lab-VM möglicherweise entweder ein Upgrade des VM-Agents durchführen oder darauf warten, dass der VM-Agent initialisiert wird. Der VM-Agent kann von Diensten abhängen, deren Initialisierung lange dauern kann.
Ermitteln Sie, ob das Artefakt wegen des VM-Agents nicht mehr reagiert, indem Sie die folgenden Schritte ausführen:
Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.
Öffnen Sie ein Datei-Explorer-Fenster, und wechseln Sie zu dem Ordner mit den Protokolldateien für Ihre Lab-VM, z. B. C:\WindowsAzure\logs.
Öffnen Sie die Datei WaAppAgent.log.
Suchen Sie in der Protokolldatei nach Einträgen, die zeigen, dass der VM-Agent gestartet wurde, die Initialisierung abgeschlossen ist und der erste Heartbeat gesendet wurde. Scannen Sie die Einträge nach Zeitstempeln um die Zeit, zu der das Artefaktproblem aufgetreten ist. Der folgende Codeausschnitt zeigt einige Beispieleinträge aus der Protokolldatei:
[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.
In diesem Beispiel hat der VM-Agent 10 Minuten und 20 Sekunden zum Starten benötigt. Die Verzögerung liegt daran, dass der Start des OOBE-Diensts (Out-of-Box-Experience) sehr lange gedauert hat. Die lange Startzeit für den VM-Agent führte dazu, dass das Artefakt nicht mehr reagierte.
Allgemeine Informationen zu Azure-Erweiterungen finden Sie unter Erweiterungen und Features für virtuelle Azure-Computer. Weitere Möglichkeiten zur Problembehandlung finden Sie in der Übersicht über den Agent für virtuelle Azure-Computer.
Untersuchen von Skriptproblemen
Ein weiterer Grund für das Fehlschlagen der Artefaktinstallation kann die Art der Erstellung der Artefaktinstallationsskripts sein.
Dies sind einige Beispiele für potenzielle Skriptprobleme:
Das Skript verfügt über obligatorische Parameter, aber ein erwarteter Wert wird während der Skriptausführung nicht übergeben. Dieses Szenario kann auftreten, wenn der Benutzer einen erwarteten Parameter leer lassen darf und kein Standardwert in der artifactfile.json-Definitionsdatei angegeben ist. Das Skript reagiert dann nicht mehr, weil es auf eine Benutzereingabe wartet. Wenn das Skript Parameterwerte erfordert, empfiehlt es sich, Standardwerte zu definieren und festzulegen, dass der Benutzer einen Wert eingeben muss.
Für das Skript ist während der Skriptausführung eine Benutzeraktion erforderlich. Dieses Szenario kann auftreten, wenn es eine lange Verzögerung bei der Skriptausführung gibt, während darauf gewartet wird, dass der Benutzer eine Aktion ausführt. Es empfiehlt sich, Skripts zu erstellen, die ohne Benutzereingriff im Hintergrund funktionieren können.
Ermitteln Sie, ob das Artefakt wegen des Skripts nicht mehr reagiert, indem Sie die folgenden Schritte ausführen:
Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.
Öffnen Sie ein Datei-Explorer-Fenster.
Wechseln Sie zum Ordner Downloads mit dem Artefaktinstallationsskript für Ihre VM, z. B. C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE-Version>\Downloads\. Ein Beispiel für <CSE-Version> ist
1.10.12
.Für die nachfolgenden Schritte können Sie mit dem Skript in diesem Ordner arbeiten oder das Skript in einen Arbeitsordner auf Ihrer VM kopieren.
Öffnen Sie ein Eingabeaufforderungsfenster mit Administratorberechtigungen auf Ihrer VM.
Führen Sie das Artefaktinstallationsskript im Eingabeaufforderungsfenster aus.
Folgen Sie den Anweisungen des Skripts, und geben Sie die erforderlichen Parameterwerte ein. Um zu untersuchen, ob das Problem von fehlenden Benutzereingaben oder verzögerten Benutzeraktionen verursacht wird, versuchen Sie, das spezifische Verhalten zu reproduzieren.
Ermitteln Sie, ob das Skript unerwartetes oder problematisches Verhalten zeigt.
Korrigieren Sie bei Bedarf das Skript auf Ihrer Lab-VM, und führen Sie es erneut aus, um zu bestätigen, dass die Probleme behoben sind.
Überprüfen der Artefaktstruktur
Ein benutzerdefiniertes Artefakt muss über die richtige Struktur verfügen. Vergewissern Sie sich, dass benutzerdefinierte Artefakte im Artefaktinstallationsskript die richtige Struktur implementieren. Die folgenden Ressourcen enthalten Informationen, die Ihnen bei der Durchführung dieser Überprüfung helfen:
- Informationen dazu, wie ein Artefakt ordnungsgemäß erstellt wird, finden Sie unter Erstellen benutzerdefinierter Artefakte.
- Ein Beispiel eines ordnungsgemäß strukturierten Artefakts ist das Artefakt zum Testen von Parametertypen.
- Weitere Informationen zum Schreiben und Korrigieren von Artefaktskripts finden Sie unter AUTHORING.
Anfordern einer Skriptaktualisierung
Sie können Korrekturvorschläge für im öffentlichen Repository des DevTest Labs gehostete Skripts für Artefakte übermitteln. Weitere Informationen finden Sie im Abschnitt Beiträge im README-Dokument.
Support
Wenn Sie weitere Hilfe benötigen, probieren Sie eine der folgenden Supportangebote:
Suchen Sie in den Microsoft Community-Websiteressourcen nach Informationen zu Azure DevTest Labs, und greifen Sie auf Beiträge auf Stack Overflow zu.
Kontaktieren Sie @AzureSupport, das offizielle Microsoft Azure-Konto für die Optimierung der Customer Experience. Der Azure-Support verbindet die Azure-Community mit Antworten, Support und Experten.