Fehlerbehebung bei Validierungstests

Um zu prüfen, ob benutzerdefinierte VM-Images korrekt gestartet werden und die Konfigurationsanforderungen erfüllen, führt Image Builder automatisierte Validierungstests auf einer temporären Test-VM aus. Wenn einer dieser Tests fehlschlägt, wird die Pipeline beendet und Image Builder veröffentlicht das endgültige Image nicht.

Hinweis

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren:

    Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  • Legen Sie eine Standardregion und -zone fest.
  • REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI.

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Übersicht

Wenn die Anpassungsschritte erfolgreich abgeschlossen wurden, exportiert der Orchestrator das VM-Bootlaufwerk als temporäres Test-Image (mit dem Namen image-builder-test-image-BUILD_ID in der Familie image-builder-test-images).

Der Orchestrator startet eine Test-VM mit diesem Image und führt eine Reihe von Systemtests aus. Image Builder gibt die Testergebnisse in einem standardmäßigen JUnit-XML-Format direkt in die Cloud Build-Logs aus.

Fehlerbehebung bei bestimmten Validierungstests

Sehen Sie sich die häufigen Fehler und Diagnoseschritte für die einzelnen Validierungstests an:

Intel IDPF-Treiberüberprüfung

Mit diesem Test wird überprüft, ob auf unterstützten VM-Instanzen der leistungsstarke Intel Infrastructure Data Path Function-Treiber (idpf) auf physischen Netzwerkschnittstellen geladen wird.

  • Fehlerbedingung: Die VM besteht die Validierung nicht, wenn sie auf ein generisches Netzwerkadapterpaket zurückgreift oder wenn im Gastkernel das aktive idpf-Treibermodul fehlt.
  • Lösung:
    • Achten Sie darauf, dass Ihr Basisbetriebssystem eine mit IDPF kompatible Kernel-Version hat.
    • Prüfen Sie, ob der Treiber von Standard-Netzwerkdienstprogrammen entfernt oder auf die Blockierliste gesetzt wird.
    • Prüfen Sie bei benutzerdefinierten Kernel-Builds, ob CONFIG_IDPF konfiguriert ist.

Netzwerk und Überprüfung des Gast-Agents

Mit diesem Test wird bestätigt, dass die Instanz über funktionierende Gastkommunikation und standardisierte Netzwerkschnittstellenkonfigurationen verfügt.

  • Fehlerbedingung: Der Test schlägt unter einer der folgenden Bedingungen fehl:
    • Der Dienstmanager für Gast-Agents SubState zeigt keinen running-Status an.
    • Keine Nicht-Loopback-Netzwerkschnittstelle ist online.
    • Schnittstellennamen entsprechen nicht den erwarteten Standardmustern (z. B. eth* oder en*).
  • Lösung:

    • Prüfen Sie, ob der Gast-Agent installiert und so konfiguriert ist, dass er beim Booten gestartet wird:

      systemctl is-active google-guest-agent
      
    • Achten Sie darauf, dass Ihre Netzwerkkonfigurationen (z. B. Netplan- oder ifupdown-Vorlagen) primäre virtuelle Schnittstellen nicht deaktivieren.

Secure Boot-Überprüfung

In diesem Test wird geprüft, ob UEFI Secure Boot aktiv ist und ob das System die Validierung der Gastbetriebssystem-Kernelsignatur für das Image erzwingt.

  • Fehlerbedingung: Der Test schlägt fehl, wenn die Compute Engine-UEFI-Variablen melden, dass SecureBoot nicht 1 oder SetupMode nicht 0 ist.
  • Lösung:

    • Prüfen Sie, ob Ihr Bild gültige Signaturschlüssel enthält.
    • Prüfen Sie in der Datei imagebuilder.yaml, ob guestOsFeatures unter Ihrem Zielblock UEFI_COMPATIBLE enthält:

      destinations:
        - diskImage:
            guestOsFeatures:
              - UEFI_COMPATIBLE
      

Bestätigung pausieren oder fortsetzen

Bei diesem Test wird die Test-VM mit der Compute Engine API angehalten. Anschließend wird geprüft, ob die Verbindung wiederhergestellt wird, ohne dass ein vollständiger Neustart des Gastbetriebssystems ausgelöst wird.

  • Fehlerbedingung: Der Test schlägt fehl, wenn die Instanz beim Aufwachen neu startet, während des Ruhezustands hängen bleibt oder keine Netzwerk-Pings empfängt.
  • Lösung:
    • Prüfen Sie, ob ACPI-Dienste und Energieverwaltungsrichtlinien im Gastbetriebssystem aktiviert und so konfiguriert sind, dass sie auf ACPI-Ereignisse reagieren.
    • Prüfen Sie die Gastsystemprotokolle (/var/log/syslog oder /var/log/messages), um festzustellen, ob benutzerdefinierte Daemons System-Sleep-Anfragen blockieren.

Validierungstests überspringen

Wir empfehlen zwar, Produktionsbilder zu validieren, Sie können Validierungstests während des Testens jedoch überspringen, indem Sie skipSystemTests: true im Block spec.config in der Datei imagebuilder.yaml festlegen:

spec:
  config:
    skipSystemTests: true