Gastumgebung


Wenn Sie eine VM-Instanz mit öffentlichen Images von Google starten, wird automatisch eine Gastumgebung auf der VM-Instanz installiert. Die Gastumgebung besteht aus einer Reihe von Skripts, Daemons und Binärdateien, die den Inhalt des Metadatenservers lesen, damit eine VM ordnungsgemäß in Compute Engine ausgeführt wird. Ein Metadatenserver ist ein Kommunikationskanal zum Übertragen von Informationen von einem Client zum Gastbetriebssystem.

In diesem Dokument erhalten Sie einen Überblick über die Komponenten der Gastumgebung und über unterstützte Betriebssysteme und lernen, wann Sie die Gastumgebung manuell installieren oder aktualisieren müssen.

Zeitpunkt zur manuellen Installation oder Aktualisierung der Gastumgebung

VM-Instanzen, die mit öffentlichen Images von Google erstellt werden, enthalten eine standardmäßig installierte Gastumgebung.

Unter Gastumgebung validieren können Sie prüfen, ob die Gastumgebung auf Ihrer Instanz ausgeführt wird.

Unter Umständen kann die installierte Gastumgebung veraltet sein. Wenn die Gastumgebung auf Ihrer Instanz verfügbar, aber veraltet ist, aktualisieren Sie die Gastumgebung.

Möglicherweise müssen Sie die Gastumgebung auch manuell installieren. Das ist bei folgenden Bedingungen der Fall:

  • Sie importieren ein benutzerdefiniertes Image oder ein virtuelles Laufwerk auf die Compute Engine-Plattform und wählen die Option zur automatischen Installation der Gastumgebung nicht aus.

    Wenn Sie virtuelle Laufwerke oder benutzerdefinierte Images importieren, können Sie Compute Engine veranlassen, die Gastumgebung für Sie zu installieren. Wenn Sie die Gastumgebung jedoch nicht während des Importvorgangs installieren möchten, müssen Sie die Schritte zur manuellen Installation ausführen, um die Gastumgebung zu installieren.

  • Sie migrieren VMs mit Migrate to Virtual Machines zu Compute Engine.

  • Sie verwenden ein Image, das nicht die Optimierungen der Gastumgebung für lokale SSDs nutzt.

  • Sie haben Instanzen, die ein älteres Image als v20141218 verwenden.

Falls Sie die Gastumgebung manuell installieren müssen, finden Sie weitere Informationen dazu unter Gastumgebung installieren.

Unterstützte Betriebssysteme

Jedes unterstützte Betriebssystem, das in Compute Engine verfügbar ist, erfordert bestimmte Gastumgebungspakete. Diese Pakete werden entweder von Google oder vom Inhaber des Betriebssystems erstellt. Weitere Informationen darüber, wer die Gastumgebungspakete erstellt, finden Sie im Dokument Details zu Betriebssystemen in den Abschnitten zu Standard-Images.

Die Linux-Gastumgebung

Unabhängig davon, ob die Linux-Gastumgebung von Google oder dem Eigentümer des Betriebssystems erstellt wird, gibt es einige Schlüsselkomponenten, die auf alle Builds anwendbar sind.

Die Basiskomponenten einer Linux-Gastumgebung werden als deb- oder rpm-Pakete bereitgestellt, die mit den entsprechenden Konfigurationen für die unterstützten Distributionen erstellt werden.

Im Folgenden werden die Hauptskripts, Daemons und Pakete zusammengefasst, die in der Linux-Gastumgebung verpackt sind:

  • Das Paket google-compute-engine enthält die folgenden Komponenten:

    • Systeminitialisierungsskripts für systemd
    • Systemkonfigurationen wie udev-Regeln, sysctl-Regeln, rsyslog-Konfigurationen und dhcp-Konfigurationen, die für die Einstellung des Hostnamens verwendet werden
    • Bash-Skripts, die beim Starten der Instanz ausgeführt werden.

    Dieses Paket hängt von den Paketen google-guest-agent und google-compute-engine-oslogin ab.

    Informationen zum Quellcode für dieses Paket finden Sie unter guest-configs auf GitHub.

  • Das Paket google-guest-agent enthält die ausführbaren Dateien des Gast-Agents und des Metadatenskripts, die auf dem Gastbetriebssystem ausgeführt werden, um die Compute Engine-Features zu unterstützen. Der Linux-Gastagent unterstützt die folgenden Funktionen:

    Der Linux-Gast-Agent kommuniziert so mit Compute Engine-Diensten: + Liest Daten aus den VM-Metadaten und schreibt sie in diese. + Sendet Protokolle an den seriellen Port und optional an Cloud Logging.

    Der Linux-Gast-Agent erfasst außerdem Telemetriedaten vom Gastbetriebssystem, die für die Analyse und Fehlerbehebung verwendet werden. Die Telemetriedaten umfassen: Name des Betriebssystems, Betriebssystemversion, Betriebssystemkernel-Release, Betriebssystemkernelversion und Betriebssystem-Agent-Version. Wenn Sie die Erfassung der Telemetriedaten deaktivieren möchten, legen Sie die folgenden Metadaten entweder auf VM- oder Projektebene fest: disable-guest-telemetry=TRUE.

    Informationen zum Quellcode für dieses Paket finden Sie unter Guest-Agent auf GitHub.

  • Das Paket google-compute-engine-oslogin enthält die Binärdateien, Module und Skripts für OS Login. Mit OS Login können Sie den Zugriff auf VM-Instanzen mithilfe von IAM-Rollen (Identity and Access Management) verwalten.

    Das Paket umfasst Folgendes:

    • Befehl "Authorized Keys", der SSH-Schlüssel aus dem OS Login-Profil des Nutzers anr SSHD zur Authentifizierung von Nutzern bei der Anmeldung bereitstellt.
    • NSS-Module (Name Service Switch), die das Verfügbarmachen von OS Login-Nutzer- und Gruppeninformationen für das System unterstützen.
    • PAMs (Pluggable Authentication Modules), die Autorisierungsunterstützung bieten (und Authentifizierung, wenn die Bestätigung in zwei Schritten aktiviert ist), die es dem System ermöglicht, Google Cloud IAM-Berechtigungen zu verwenden, um die Fähigkeit zu steuern, sich bei einer Instanz anzumelden oder Vorgänge als Root (über sudo) auszuführen.
    • google_oslogin_nss_cache ist ein Dienstprogramm zum Aktualisieren des lokalen Nutzer- und Gruppen-Cache.
    • selinux enthält SELinux-Richtliniendefinitionsdateien und ein kompiliertes Richtlinienpaket zur Konfiguration von SELinux für die Unterstützung von OS Login.

    Die OS Login-Komponenten kommunizieren folgendermaßen mit Compute Engine-Diensten:

    • Liest Daten aus den VM-Metadaten und schreibt sie in diese.
    • Sendet Logs an den seriellen Port und optional an Cloud Logging.

    Informationen zum Quellcode für dieses Paket finden Sie unter guest-oslogin auf GitHub.

  • Die gce-disk-expand-Komponenten kommunizieren mit Compute Engine-Diensten:

    • Sendet Logs an den seriellen Port

    Informationen zum Quellcode für dieses Paket finden Sie unter guest-diskexpand auf GitHub.

  • Das Paket google-osconfig-agent enthält den OS Config-Agent, mit dem VM Manager das Betriebssysteminventar, Patches und Betriebssystemrichtlinien verwaltet.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Liest Daten aus den VM-Metadaten und schreibt sie in diese.
    • Standardmäßig erfasst oder sendet der OS Config-Agent keine Informationen, bis der OS Config-Agent aktiviert ist. Nachdem Sie den Agent aktiviert haben, kommuniziert der Agent mit dem OS Config API-Dienst. Informationen zum Prüfen der vom Agent abgeschlossenen Vorgänge finden Sie unter Audit-Logs von VM Manager ansehen.

    Informationen zum Quellcode für diesen Agent finden Sie unter osconfig auf GitHub.

Die Windows-Gastumgebung

Im Folgenden werden die Pakete zusammengefasst, die Teil der Windows-Gastumgebung sind:

  • Das Paket google-compute-engine-windows enthält den Windows-Gast-Agent. Der Windows-Gast-Agent wird für die folgenden Prozesse verwendet:

    Der Windows-Gast-Agent kommuniziert so mit Compute Engine-Diensten: + Liest Daten aus den VM-Metadaten und schreibt sie in diese. + Sendet Protokolle an das Windows-Anwendungsereignisprotokoll, den seriellen Port und Cloud Logging.

    Der Windows-Gast-Agent erfasst außerdem Telemetriedaten aus dem Gastbetriebssystem, die für die Analyse und Fehlerbehebung verwendet werden. Die Telemetriedaten umfassen: Name des Betriebssystems, Betriebssystemversion, Betriebssystemkernel-Release, Betriebssystemkernelversion und Betriebssystem-Agent-Version. Wenn Sie die Erfassung der Telemetry-Daten deaktivieren möchten, legen Sie die folgenden Metadaten entweder auf VM- oder Projektebene fest: disable-guest-telemetry=TRUE.

    Informationen zum Quellcode für diesen Agent finden Sie unter Guest-Agent auf GitHub.

  • Das Paket google-compute-engine-sysprep enthält Skripts zur Generalisierung einer Windows-Instanz in Vorbereitung auf das Erstellen eines Images. Das Paket enthält außerdem das Skript instance_setup.ps1, das beim ersten Start zum Konfigurieren der neuen Instanz verwendet wird.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Liest Daten aus den VM-Metadaten und schreibt sie in diese.
    • Senden von Logs an das Windows-Anwendungsereignisprotokoll und den seriellen Port

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket google-compute-engine-metadata-scripts enthält Skripts und Binärdateien, die zum Ausführen der Compute Engine "sysprep-Spezialisierung" verwendet werden, d. h. zum Starten und Herunterfahren von Skripts.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Liest Daten aus den VM-Metadaten und schreibt sie in diese.
    • Lesen von Cloud Storage-Speicherorten, wenn sysprep-specialize-script-url und windows-startup-script-url verwendet werden
    • Senden von Logs an das Windows-Anwendungsereignisprotokoll, den seriellen Port und Cloud Logging

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket google-compute-engine-powershell enthält ein PowerShell-Modul. Dieses Modul enthält gängige Funktionen, die von PowerShell-Skripts in den anderen Skripts der Windows-Gastumgebung verwendet werden.

    Die Skripts kommunizieren mit den folgenden Compute Engine-Diensten:

    • Standardmäßiges Senden von Logs von der Logging-Funktion im PowerShell-Modul an das Windows-Anwendungsereignisprotokoll und den seriellen Port

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket google-compute-engine-auto-updater enthält Skripts, die für die tägliche Aktualisierung der Compute Engine-Pakete verwendet werden. Dieses Paket wird nicht mehr standardmäßig installiert.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Lesen von Daten aus VM-Metadaten
    • Aufrufen des Googet-Agents zum Senden von Logs an das Windows-Anwendungsereignisprotokoll und die Konsole

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket google-compute-engine-diagnostics enthält eine Binärdatei, die zum Abrufen von Diagnoseinformationen aus der Instanz verwendet wird, und zum Speichern der Informationen in einem Cloud Storage-Bucket. Die Binärdatei wird vom Windows-Gast-Agent ausgeführt.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Speichern von Daten in einem Cloud Storage-Bucket

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-tools auf GitHub.

  • Das Paket certgen enthält eine Binärdatei, die ein Zertifikat für die Instanz erstellt.

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket googet enthält eine Binärdatei, die ein Paketmanager ist, der zur Installation und Verwaltung der Gastumgebung verwendet wird.

    Die Scripts kommunizieren mit Compute Engine-Diensten, indem sie Daten aus den Google Cloud-Repositories unter packages.cloud.google.com lesen.

    Informationen zum Quellcode für diesen Agent finden Sie unter googet on GitHub.

  • Das Paket google-compute-engine-vss installiert den Compute Engine VSS-Agent und den Anbieter, die zum Erstellen eines Snapshots von nichtflüchtigem Speicher mithilfe von Microsofts Volumeschattenkopie-Dienst (VSS).

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Kommunizieren mit dem Google Cloud-Snapshot-Dienst

    Informationen zum Quellcode für diesen Agent finden Sie unter compute-image-windows auf GitHub.

  • Das Paket google-osconfig-agent enthält den OS Config-Agent, der von VM Manager zum Verwalten von Betriebssysteminventar, Patches und Betriebssystemrichtlinien verwendet wird.

    Die Skripts kommunizieren so mit Compute Engine-Diensten:

    • Liest Daten aus den VM-Metadaten und schreibt sie in diese.
    • Standardmäßig erfasst oder sendet der OS Config-Agent keine Informationen, bis der OS Config-Agent aktiviert ist. Nachdem Sie den Agent aktiviert haben, kommuniziert der Agent mit dem OS Config API-Dienst. Informationen zum Prüfen der vom Agent abgeschlossenen Vorgänge finden Sie unter Audit-Logs von VM Manager ansehen.

    Informationen zum Quellcode für diesen Agent finden Sie unter osconfig auf GitHub.

Windows-Treiber für Compute Engine

Die folgenden Compute Engine-Treiber werden für Windows-Images verwaltet:

Treibertyp Paketname
Ethernet Adapter google-compute-engine-driver-netkvm
SCSI-Laufwerk google-compute-engine-driver-vioscsi
Display adapter google-compute-engine-driver-gga
Crash Handler google-compute-engine-driver-pvpanic
Virtio Memory Balloon Driver google-compute-engine-driver-balloon
Google Virtual NIC google-compute-engine-driver-gvnic

Jeder Treiber wird mit GooGet verpackt und in Google Cloud Repositories veröffentlicht. Der Quellcode für die Treiber befindet sich unter compute-windows-drivers on GitHub. Alle Google Cloud-Windows-Images sind mit dem GooGet-Tool und Google Cloud-Repositories vorkonfiguriert. Wenn Sie selbst GooGet installieren und Repositories einrichten möchten, finden Sie unter Verpackung und Paketverteilung weitere Informationen dazu.

Führen Sie den folgenden Befehl aus, um einen bestimmten Treiber zu installieren oder zu aktualisieren:

googet install DRIVER_PACKAGE_NAME

Nächste Schritte

Eine detaillierte Anleitung zur Installation der Gastumgebung finden Sie unter Gastumgebung installieren.