Freigeben über


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:

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

    Screenshot: Sicherstellen, dass die DevTest Labs-VM ausgeführt wird.

  2. Wählen Sie Artefakte aus, und öffnen Sie die Artefaktliste für die Lab-VM:

    Screenshot, der zeigt, wie die Artefaktliste für die Lab-VM geöffnet wird.

  3. Überprüfen Sie die Option Artefakte anwenden, und vergewissern Sie sich, dass die Lab-VM bereit ist, angewendete Artefakte anzunehmen:

    Screenshot: Sicherstellen, dass Artefakte auf die DevTest Labs-VM angewendet werden können.

    Wenn die Option Artefakte anwenden ausgegraut, können Sie Artefakte nicht auf die Lab-VM anwenden, und auf der Seite wird eine Benachrichtigung angezeigt:

    Screenshot der Benachrichtigung, dass Artefakte nicht auf die DevTest Labs-VM angewendet werden können.

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:

  1. Navigieren Sie zur Listenseite Artefakte für die Lab-VM, und wählen Sie das Artefakt mit dem Status Fehlgeschlagen aus:

    Screenshot, der zeigt, wie Sie das fehlerhafte Artefakt für die Lab-VM suchen und auswählen.

  2. Die Detailansicht Artefakt wird geöffnet. Die Details umfassen Informationen zur Bereitstellungsnachricht und Erweiterungsmeldung für den Artefaktfehler:

    Screenshot der Details für das fehlerhafte Artefakt, einschließlich Informationen zu Bereitstellungs- und Erweiterungsnachrichten.

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:

  1. Navigieren Sie zur Seite Aktivitätsprotokoll für die Lab-VM, und suchen Sie das Artefakt mit dem Status Fehlgeschlagen:

    Screenshot, der zeigt, wie Sie den Aktivitätsprotokolleintrag für ein fehlerhaftes Artefakt auf der Lab-VM finden.

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

    Screenshot, der zeigt, wie Sie Details für den Aktivitätsprotokolleintrag für ein fehlerhaftes Artefakt anzeigen.

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

    Screenshot, der zeigt, wie Sie die JSON-Details für den Aktivitätsprotokolleintrag für ein fehlerhaftes Artefakt anzeigen.

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:

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

  2. Überprüfen Sie alle NSG-Regeln:

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

    1. Navigieren Sie zur Seite Übersicht für die Lab-VM in DevTest Labs, und wählen Sie Ressourcenschnellansicht aus.

    2. Suchen Sie im Diagramm das Speicherkonto mit einem Namen, der der beschriebenen Benennungskonvention entspricht (a<labname>#).

    3. Wählen Sie die Speicherkonto-Ressource aus, um das Popupmenü anzuzeigen, und wählen Sie dann Anzeigen aus:

      Screenshot: Auswählen der Option „Anzeigen“ für das Speicherkonto für die DevTest Labs-Lab-Ressource.

    4. Erweitern Sie auf der Seite Übersicht des Speicherkontos den Abschnitt Sicherheit + Netzwerkbetrieb im linken Menü, und wählen Sie Netzwerk aus:

      Screenshot: Anzeigen der Netzwerkkonfiguration für das Speicherkonto für eine DevTest Labs-Lab-Ressource.

    5. Überprüfen Sie auf der Registerkarte Firewalls und virtuelle Netzwerke die Konfiguration für die Option Öffentlicher Netzwerkzugriff:

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

        Screenshot, der die Auswahl „Aktiviert von ausgewählten virtuellen Netzwerken und IP-Adressen“ für das Speicherkonto der Lab-Ressource zeigt.

      2. Andernfalls bestätigen Sie, dass Von allen Netzwerken aus aktiviert ausgewählt ist:

        Screenshot, der die Auswahl „Von allen Netzwerken aus aktiviert“ für das Speicherkonto der Lab-Ressource zeigt.

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:

  1. Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.

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

    Screenshot, der den Inhalt des Ordners „Status“ auf einem virtuellen Windows-Computer für DevTest Labs zeigt.

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

  1. Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.

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

  3. Öffnen Sie die Datei WaAppAgent.log.

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

  1. Stellen Sie eine Verbindung mit Ihrer ausgeführten Lab-VM für DevTest Labs her.

  2. Öffnen Sie ein Datei-Explorer-Fenster.

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

  4. Öffnen Sie ein Eingabeaufforderungsfenster mit Administratorberechtigungen auf Ihrer VM.

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

  6. Ermitteln Sie, ob das Skript unerwartetes oder problematisches Verhalten zeigt.

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

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.