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

Ü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