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 während oder nach der VM-Erstellung auf Lab-VMs 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. Sie können Informationen zum Status der VM finden, 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. Wechseln Sie zur Übersichtsseite der DevTest Labs-VM, und bestätigen Sie, dass der Maschinenstatus Wird ausgeführt ist:

    Screenshot, der zeigt, wie Sie bestätigen können, dass der virtuelle DevTest Labs-Computer ausgeführt wird.

  2. Wählen Sie Artefakte aus, um die Artefakteliste für den virtuellen Laborcomputer zu öffnen:

    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 VM des Labors bereit ist, angewendete Artefakte zu akzeptieren:

    Screenshot, der zeigt, wie Sie bestätigen können, dass Artefakte auf den virtuellen DevTest Labs-Computer angewendet werden können.

    Wenn die Option " Artefakte anwenden" abgeblendet angezeigt wird, können Sie Artefakte nicht auf den virtuellen Laborcomputer anwenden, und auf der Seite wird eine Benachrichtigung angezeigt:

    Screenshot der Meldung, die besagt, dass Artefakte nicht auf den virtuellen Computer

Verwenden eines PowerShell-Befehls

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 $SubscriptionId Parameter durch Ihre Abonnement-ID, den Parameter durch den $LabName/$VmName Lab-Namen und den VM-Namen und den Parameter durch den $LabRgName Namen der Lab-Ressourcengruppe.

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. Wechseln Sie zur Seite "Artefakte" für den virtuellen Laborcomputer, und wählen Sie das Artefakt mit dem Status "Fehlgeschlagen " aus:

    Screenshot eines fehlerhaften Artefakts für einen virtuellen Computer eines Labs.

  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

Um Artefakte zu installieren, erstellt und implementiert DevTest Labs eine Azure Resource Manager (ARM)-Vorlage, die den Einsatz der Custom Script Extension (CSE) anfordert. Ein Fehler auf dieser Ebene wird in den Aktivitätsprotokollen für das Abonnement und für die Ressourcengruppe angezeigt, die die Lab-VM enthält.

Note

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, indem Sie die folgenden Schritte ausführen:

  1. Wechseln Sie zur Seite "Aktivitätsprotokoll " für den virtuellen Laborcomputer, und suchen Sie das Artefakt mit dem Status "Fehlgeschlagen" :

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

  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 zum Erstellen oder Aktualisieren der Erweiterung virtueller Computer .

    • 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 Titel des Bereichs 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 Sie das Artefakt-Repository und das Laborspeicherkonto.

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 Laborspeicherkonto zwischen, das beim ersten Initialisieren des Labors 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 dieser 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.
    

    Dieser Fehler kann beispielsweise auftreten, wenn der Datenverkehr vom virtuellen Computer zum Azure Storage-Dienst blockiert wird. Dieser Fehler wird im Aktivitätsprotokoll der Ressourcengruppe der Lab-VM angezeigt.

Identifizieren Sie Repositoryverbindungsprobleme mit dem Azure Storage-Konto, indem Sie die folgenden Schritte ausführen:

  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: a<labname>#.

    1. Wechseln Sie zur Seite "Übersicht" für DevTest Labs, und wählen Sie "Ressourcenvisualisierung" aus.

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

    3. Zeigen Sie mit dem Mauszeiger auf die Speicherkontoressource, bewegen Sie den Mauszeiger auf das Symbol i, 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 über speicherkonto" den Abschnitt "Sicherheit + Netzwerk " im linken Menü, und wählen Sie dann "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 "Aus ausgewählten virtuellen Netzwerken und IP-Adressen aktiviert " ausgewählt ist, vergewissern Sie sich, dass in der Liste der zulässigen IP-Adressen die virtuellen Netzwerke des Labors angezeigt werden, 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. Vergewissern Sie sich andernfalls, dass "Aus allen Netzwerken aktiviert " ausgewählt ist:

        Screenshot, der die Option

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 CSE-Protokolldatei

Zeigen Sie die CSE-Protokolldatei 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. Wechseln Sie im Datei-Explorer 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 und prüfen Sie eine STATUS-Datei , z. B. 1.status, um den Fehler anzuzeigen.

Anweisungen zum Auffinden der Protokolldateien auf einem virtuellen Linux-Computer finden Sie unter Verwenden von Azure CSE Version 2 mit virtuellen Linux-Computern.

Überprüfen des Azure-Agents für virtuelle Computer

Stellen Sie sicher, dass der Azure Virtual Machine Agent (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 der VM-Agent das Ansprechen des Artefakts verhindert, indem Sie die folgenden Schritte ausführen:

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

  2. Wechseln Sie im Datei-Explorer zu dem Ordner, der die Protokolldateien für Ihre Lab-VM enthält, 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 trat auf, da der Out-of-Box-Experience-Dienst (OOBE) lange Zeit benötigte. 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, warum die Artefaktinstallation fehlschlägt, liegt daran, wie das Artefaktinstallationsskript geschrieben wird.

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 schreiben, die ohne Benutzereingriff im Hintergrund funktionieren können.

Ermitteln Sie, ob das Skript dazu führt, dass das Artefakt 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. Öffne den Datei-Explorer.

  3. Wechseln Sie zum Downloadordner 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 nach Bedarf das Skript auf Ihrer Lab-VM, und führen Sie das Skript erneut aus, um zu bestätigen, dass 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.

Get support

Wenn Sie weitere Hilfe benötigen, probieren Sie eine der folgenden Supportangebote:

  • Durchsuchen Sie die Microsoft Community-Ressourcen nach Informationen zu Azure DevTest Labs und sehen Sie sich Beiträge auf Stack Overflow an.

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