Benutzerdefinierte Images erstellen, löschen und verwerfen

Sie haben die Möglichkeit, benutzerdefinierte Images von Quelllaufwerken, Images, Snapshots oder von in Cloud Storage gespeicherten Images zu erstellen. Sie können diese Images verwenden, um VM-Instanzen zu erstellen. Dies ist ideal, wenn Sie ein nichtflüchtiges Bootlaufwerk oder ein bestimmtes Image in einem bestimmten Zustand erstellt und geändert haben und diesen Zustand zum Erstellen von Instanzen speichern müssen.

Alternativ können Sie das Tool zum Importieren virtueller Laufwerke verwenden, um Images von Bootlaufwerken aus vorhandenen Systemen in Compute Engine zu importieren und der Liste Ihrer benutzerdefinierten Images hinzuzufügen.

Vorbereitung

Benutzerdefiniertes Image erstellen

Diese Anleitung beschreibt, wie ein benutzerdefiniertes Image auf einer Linux-Instanz erstellt wird. Eine Anleitung zum Erstellen eines Windows-Images finden Sie unter Windows-Images erstellen.

Sie müssen Cloud IAM-Berechtigungen (Cloud Identity and Access Management) verwenden, um Images mit anderen Projekten zu teilen.

Image-Speicherort auswählen

Beim Erstellen eines benutzerdefinierten Images können Sie dessen Speicherort in Cloud Storage angeben, sofern es sich nicht um Standorte mit zwei Regionen handelt. Die Angabe des Image-Speicherorts ermöglicht es Ihnen, geltende Vorschriften und Compliance-Anforderungen hinsichtlich der Datenlokalität einzuhalten. Außerdem können Sie Ihre hohen Verfügbarkeitsanforderungen erfüllen, da Sie für regionsübergreifende Redundanz sorgen.

Die Angabe des Speicherorts ist optional. Wenn Sie keinen Speicherort auswählen, speichert Compute Engine das Image in der Multiregion, die der Image-Quelle am nächsten liegt.

Den Speicherort eines Images können Sie mit dem Befehl images describe von gcloud compute abrufen:

    gcloud compute images describe [IMAGE_NAME] --project [PROJECT]
    
    ⋮
    storageLocations:
    - us-central1
    

Alle Images, die Sie vor der Einführung dieses Features erstellt haben, bleiben an ihrem bisherigen Speicherort. Die einzige Änderung besteht darin, dass Sie jetzt den Image-Speicherort aller Ihrer Bilder einsehen können. Wenn Sie ein vorhandenes Image verschieben möchten, müssen Sie es am gewünschten Speicherort neu erstellen.

Instanz für ein Image vorbereiten

Sie können ein Image von einem Laufwerk erstellen, auch wenn es mit einer ausgeführten VM-Instanz verknüpft ist. Das Image wird jedoch zuverlässiger, wenn Sie die Instanz in einen Zustand versetzen, den das Image leichter erfassen kann. Mit einem der folgenden Prozesse bereiten Sie Ihr Bootlaufwerk für das Image vor:

  • Beenden Sie die Instanz, sodass sie herunterfahren und das Schreiben von Daten auf den nichtflüchtigen Speicher beenden kann.

  • Wenn Sie Ihre Instanz nicht beenden können, bevor Sie das Image erstellen, minimieren Sie die Anzahl der Schreibvorgänge auf das Laufwerk und synchronisieren Sie Ihr Dateisystem.

    1. Pausieren Sie alle Anwendungen oder Prozesse des Betriebssystems, die Daten in den nichtflüchtigen Speicher schreiben.
    2. Leeren Sie die Anwendungsdaten auf das Laufwerk, falls erforderlich. MySQL bietet hierfür zum Beispiel die Anweisung FLUSH. Andere Anwendungen haben möglicherweise ähnliche Prozesse.
    3. Beenden Sie das Schreiben von Daten auf den nichtflüchtigen Speicher durch Anwendungen.
    4. Führen Sie sudo sync aus.

Wenn die Instanz vorbereitet wurde, erstellen Sie das Image.

Image erstellen

Sie können folgende Quellen verwenden, um Laufwerk-Images zu erstellen:

  • einen nichtflüchtigen Speicher, auch wenn dieser mit einer Instanz verknüpft ist
  • einen Snapshot eines nichtflüchtigen Speichers
  • ein anderes Image in Ihrem Projekt
  • ein Image, das von einem anderen Projekt freigegeben wird
  • ein komprimiertes RAW-Image in Cloud Storage

Console

  1. Rufen Sie in der Google Cloud Console die Seite Image erstellen auf.
    Zur Seite "Image erstellen"
  2. Geben Sie im Feld Name den Image-Namen an.
  3. Geben Sie die Quelle an, auf deren Grundlage Sie ein Image erstellen möchten. Dies kann ein nichtflüchtiger Speicher, ein Snapshot, ein anderes Image oder eine disk.raw-Datei in Cloud Storage sein.
  4. Geben Sie den Speicherort an, an dem Ihr Image gespeichert werden soll. Wählen Sie Ihren Image-Speicherort aus der Drop-down-Liste Basierend auf dem Standort des Quelllaufwerks (Standard) aus. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.
  5. Legen Sie die gewünschten Attribute des Images fest. Sie können zum Beispiel einen Image-Familiennamen für Ihr Image angeben, um dieses Image als Teil einer Image-Familie zu organisieren.
  6. Klicken Sie auf Erstellen, um das Image zu erstellen.

gcloud

Im gcloud-Befehlszeilentool können Sie den Befehl gcloud compute images create verwenden, um ein benutzerdefiniertes Image zu erstellen.

Image von einem Quelllaufwerk erstellen:

gcloud compute images create [IMAGE_NAME] \
      --source-disk [SOURCE_DISK] \
      --source-disk-zone [ZONE] \
      --family [IMAGE_FAMILY] \
      --storage-location [LOCATION] \
      --force
    

Dabei gilt:

  • [IMAGE_NAME] ist ein Name für das neue Image.
  • [SOURCE_DISK] ist das Laufwerk, von dem Sie das Image erstellen möchten.
  • [ZONE] ist die Zone, in der sich das Laufwerk befindet.
  • [IMAGE_FAMILY] ist ein optionales Flag, das angibt, zu welcher Image-Familie dieses Image gehört.
  • [LOCATION] ist ein optionales Flag, mit dem Sie die Region oder Multiregion festlegen können, in der Ihr Image gespeichert wird. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.
  • [--force] ist ein optionales Flag, das es Ihnen ermöglicht, das Image von einer ausgeführten Instanz zu erstellen. Standardmäßig können Sie keine Images von ausgeführten Instanzen erstellen. Geben Sie dieses Flag nur an, wenn Sie sicher sind, dass Sie das Image erstellen möchten, während die Instanz ausgeführt wird.

Image von einem Quell-Image erstellen:

gcloud compute images create [IMAGE_NAME] \
      --source-image [SOURCE_IMAGE] \
      --source-image-project [IMAGE_PROJECT] \
      --family [IMAGE_FAMILY] \
      --storage-location [LOCATION]
    

Dabei gilt:

  • [IMAGE_NAME] ist ein Name für das neue Image.
  • [SOURCE_IMAGE] ist das Image, aus dem Sie das neue Image erstellen möchten.
  • [IMAGE_PROJECT] ist ein optionaler Parameter, der angibt, in welchem Projekt sich das Quell-Image befindet. Verwenden Sie diesen Parameter, wenn Sie ein Image aus einem anderen Projekt kopieren möchten.
  • [IMAGE_FAMILY] ist ein optionales Flag, das angibt, zu welcher Image-Familie dieses neue Image gehört.
  • [LOCATION] ist ein optionales Flag, mit dem Sie die Region oder den multiregionalen Standort zum Speichern des Images festlegen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Image von einem Snapshot erstellen:

gcloud compute images create [IMAGE_NAME] \
      --source-snapshot [SOURCE_SNAPSHOT] \
      --storage-location [LOCATION]
    

Dabei gilt:

  • [IMAGE_NAME] ist ein Name für das neue Image.
  • [SOURCE_SNAPSHOT] ist der Snapshot, von dem Sie das Image erstellen möchten.
  • [LOCATION] ist ein optionales Flag, mit dem Sie die Region oder den multiregionalen Standort zum Speichern des Images festlegen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Image-Speicherort einsehen:

Mit dem Befehl gcloud compute images describe rufen Sie den Speicherort eines Images ab.

gcloud compute images describe [IMAGE_NAME]
    

Dabei ist [IMAGE_NAME] der Name des Images, das Sie beschreiben möchten.

API

Stellen Sie eine POST-Anfrage an die Methode images().insert. Fügen Sie in den Anfragetext eine URL ein, die auf das Quellobjekt verweist, aus dem Sie das Image erstellen möchten. Geben Sie URLs zu Ihren Ressourcen an und verwenden Sie dazu Ihre eigene Projekt-ID und Ihre Ressourcennamen.

Image von einem nichtflüchtigen Speicher erstellen:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images

    {
      "name": "[IMAGE_NAME]",
      "sourceDisk": "/zones/[ZONE]/disks/[SOURCE_DISK]",
      "storageLocations": "[LOCATION]",
      "forceCreate": "[FORCE_CREATE]"
    }
    

Dabei gilt:

  • [PROJECT_ID] ist das Projekt, zu dem das Image gehört.
  • [IMAGE_NAME] ist ein Name für das neue Image, das Sie erstellen möchten.
  • [ZONE] ist die Zone, in der sich das Quelllaufwerk befindet.
  • [SOURCE_DISK] ist das Laufwerk, von dem Sie das Image erstellen möchten.
  • [LOCATION] ist ein optionaler Parameter, mit dem Sie den Speicherort Ihres Images auswählen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.
  • [FORCE_CREATE] ist ein optionaler Parameter, der es Ihnen ermöglicht, das Image von einer ausgeführten Instanz zu erstellen. Geben Sie den Wert TRUE nur an, wenn Sie sicher sind, dass Sie das Image von einer ausgeführten Instanz erstellen möchten. Wenn Sie diesen Parameter nicht angeben, lautet der Standardwert FALSE.

Ein Image von einem anderen Image erstellen:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images

    {
      "name": "[IMAGE_NAME]",
      "sourceImage": "/global/images/[SOURCE_IMAGE]",
      "storageLocations": "[LOCATION]"
    }
    

Dabei gilt:

  • [PROJECT_ID] ist das Projekt, zu dem das Image gehört.
  • [IMAGE_NAME] ist ein Name für das neue Image, das Sie erstellen möchten.
  • [SOURCE_IMAGE] ist das Image, von dem Sie das Image erstellen möchten.
  • [LOCATION] ist ein optionaler Parameter, mit dem Sie den Speicherort des Images auswählen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Image von einem Snapshot erstellen:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images
    {
      "name": "[IMAGE_NAME]",
      "sourceSnapshot": "/[SOURCE_PROJECT_ID]/global/snapshots/[SOURCE_SNAPSHOT]",
      "storageLocations": "[LOCATION]"
    }
    

Dabei gilt:

  • [PROJECT_ID] ist das Projekt, zu dem das Image gehört.
  • [IMAGE_NAME] ist ein Name für das neue Image, das Sie erstellen möchten.
  • [SOURCE_SNAPSHOT] ist der Snapshot, von dem Sie das Image erstellen möchten.
  • [SOURCE_PROJECT_ID] ist eine optionale Variable, die angibt, in welchem Projekt sich der Snapshot befindet. Sie benötigen die Zugriffsberechtigung für die Snapshot-Ressource in diesem Projekt.
  • [LOCATION] ist ein optionaler Parameter, mit dem Sie den Speicherort des Images auswählen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

Weitere Informationen zum Einfügen von Images finden Sie in der Image-Referenz.

Image verwerfen

Mit Compute Engine können Sie ein benutzerdefiniertes Image verwerfen, dessen Inhaber Sie sind. Hierzu legen Sie den Verwerfungsstatus des Images fest. Jeder Verwerfungsstatus führt zu einer anderen Antwort des Servers. Dies hilft Ihnen dabei, Nutzer auf organisierte Art und Weise von nicht mehr unterstützten Images wegzuführen. Zum Verwerfen eines Images können Sie die Console, das gcloud-Befehlszeilentool oder die Compute Engine API verwenden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite "Image erstellen" auf.
    Zur Seite "Image erstellen"
  2. Klicken Sie das Kästchen links neben dem Image an, das Sie verwerfen möchten.
  3. Klicken Sie oben auf der Seite auf Verwerfen. Das Image wird verworfen.

gcloud

Verwenden Sie den Befehl gcloud compute images deprecate, um den Verwerfungsstatus eines Images festzulegen.

gcloud compute images deprecate [IMAGE_NAME] \
        --state [STATE] \
        --replacement [REPLACEMENT]
    

Dabei ist [IMAGE_NAME] der Name des Images, das verworfen werden soll.

Der Ablaufstatus kann einen der folgenden Werte annehmen:

  • DEPRECATED – Dieses Image wird als verworfen betrachtet. Wenn Nutzer versuchen, dieses Image zu verwenden, ist die Anfrage erfolgreich, aber Compute Engine gibt auch eine Warnung zurück. Neue Links auf dieses Image sind weiterhin erlaubt. Image-Familien verweisen nicht mehr auf dieses Image, selbst wenn es das neueste Image einer Familie ist.
  • OBSOLETE – Dieses Image ist veraltet und neue Nutzer können es nicht verwenden. Compute Engine gibt einen Fehler zurück, wenn Nutzer versuchen, das Image in ihren Anfragen zu verwenden. Vorhandene Links zu diesem Image sind weiterhin zulässig.
  • DELETED – Dieses Image wurde gelöscht, die Nutzer können es nicht verwenden. Compute Engine gibt einen Fehler zurück, wenn Nutzer versuchen, das Image zu verwenden.

API

Stellen Sie eine POST-Anfrage an die Methode images().deprecate. Geben Sie den Namen des Images an, das Sie verwerfen möchten.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images/[RESOURCE_ID]/deprecate

    {
      "deprecated": "[IMAGE_NAME]",
      "replacement": "[REPLACEMENT]"
    }
    

Dabei gilt:

  • [PROJECT_ID] ist das Projekt, zu dem das Image gehört.
  • [IMAGE_NAME] ist das zu verwerfende Image.
  • [REPLACEMENT] ist das Image, mit dem das verworfene Image ersetzt werden soll.

Images löschen

Sie können nur benutzerdefinierte Images löschen, die von Ihnen oder einem Nutzer mit Zugriff auf das Projekt hinzugefügt wurden. Zum Löschen eines Images können Sie die Console, das gcloud-Befehlszeilentool oder die Compute Engine API verwenden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite "Image erstellen" auf.
    Zur Seite "Image erstellen"
  2. Klicken Sie das Kästchen links neben dem Image an, das Sie löschen möchten.
  3. Klicken Sie oben auf der Seite auf Löschen. Das Image wird gelöscht.

gcloud

Mit dem Befehl gcloud compute images delete löschen Sie ein Image.

gcloud compute images delete [IMAGE_NAME]
    

Dabei ist [IMAGE_NAME] der Name des zu löschenden Images.

API

Stellen Sie eine POST-Anfrage an die Methode images().delete. Geben Sie den Namen des Images an, das Sie löschen möchten.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images/[RESOURCE_ID]
    

Dabei gilt:

  • [PROJECT_ID] ist das Projekt, zu dem das Image gehört.
  • [RESOURCE_ID] ist der Name des Images, das Sie löschen möchten.

Image-Versionen in einer Image-Familie festlegen

Nutzen Sie Image-Familien, um die Versionsverwaltung von Images zu vereinfachen. Wenn Sie ein Image zu einer Image-Familie hinzufügen, wird dieses als neueste Image-Version festgelegt. Wenn Sie feststellen, dass Sie die Image-Familie auf eine frühere Image-Version zurücksetzen müssen, verwerfen Sie das neueste Image in der Familie.

Optional können Sie den Image-Speicherort über die Console, den Befehl gcloud compute images create mit dem Flag --storageLocation oder die API-Methode images().insert angeben.

Erstellen Sie beispielsweise ein Image mit dem Namen image-v1 als Teil einer Image-Familie.

Console

  1. Rufen Sie in der Google Cloud Console die Seite "Image erstellen" auf.
    Zur Seite "Image erstellen"
  2. Geben Sie im Feld Name den Image-Namen an.
  3. Geben Sie die Quelle an, auf deren Grundlage Sie ein Image erstellen möchten. Dies kann ein nichtflüchtiger Speicher, ein Snapshot, ein anderes Image oder eine disk.raw-Datei in Google Cloud Storage sein.
  4. Geben Sie den Speicherort an, an dem das Image gespeichert werden soll. Wählen Sie im Drop-down-Menü Basierend auf dem Standort des Quelllaufwerks (Standard) den Image-Speicherort aus. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, wird das Image von Compute Engine an dem multiregionalen Standort gespeichert, der dem Quellspeicherort des Images am nächsten liegt.

  5. Legen Sie die gewünschten Attribute des Images fest. Sie können zum Beispiel den Image-Familiennamen my-image-family für Ihr Image angeben, um dieses Image als Teil einer Image-Familie zu organisieren.

  6. Wenn Sie ein Image von einem Laufwerk erstellen, das mit einem ausgeführten Image verknüpft ist, aktivieren Sie die Option "Erstellung von ausgeführter Instanz erzwingen". Damit bestätigen Sie, dass Sie das Image erstellen möchten, während die Instanz ausgeführt wird.

  7. Klicken Sie auf Erstellen, um das Image zu erstellen.

gcloud

gcloud compute images create image-v1 \
        --source-disk disk-1 \
        --source-disk-zone us-central1-f \
        --family my-image-family
    

Die Image-Familie verweist auf image-v1. Fügen Sie der Familie ein zweites Image hinzu:

gcloud compute images create image-v2 \
        --source-disk disk-2 \
        --source-disk-zone us-central1-f \
        --family my-image-family
    

API

Stellen Sie eine POST-Anfrage an die Methode images().insert. Geben Sie im Anfragetext die Image-Familie an.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images

    {
      "name": "image-v2",
      "sourceDisk": "/zones/us-central1-f/disks/disk-2",
      "family":"my-image-family",

    }
    

Die Image-Familie verweist auf image-v2, weil dies das neueste Image ist, das Sie der Familie hinzugefügt haben.

gcloud

Mit dem Befehl gcloud compute images describe-from-family können Sie sehen, auf welches Image eine Familie verweist.

Beispiel:

    gcloud compute images describe-from-family my-image-family
    
    family: my-image-family
    id: '8904691942610171306'
    kind: compute#image
    name: image-v2
    selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
    sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
    sourceDiskId: '1677449456001963379'
    sourceType: RAW
    status: READY
    

API

Stellen Sie eine GET-Anfrage an die Methode images().getFromFamily. Geben Sie im Anfragetext die Image-Familie an.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images/family

    {
      "resourceId":"my-image-family",

    }
    

Wenn Sie feststellen, dass Sie ein Rollback der Image-Familie durchführen müssen, sodass sie nicht mehr auf image-v2 verweist, verwerfen Sie image-v2 und die Familie verweist wieder auf image-v1.

gcloud compute images deprecate image-v2 \
        --state DEPRECATED \
        --replacement image-v1
    

Prüfen Sie, ob die Image-Familie auch wirklich auf image-v1 verweist.

    gcloud compute images describe-from-family my-image-family
    
    family: my-image-family
    id: '2741732787056801255'
    kind: compute#image
    name: image-v1
    selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
    sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
    sourceDiskId: '1677449456001963379'
    sourceType: RAW
    status: READY
    
    

Gastbetriebssystem-Funktionen auf benutzerdefinierten Images aktivieren

Sie können den Parameter guestOsFeatures beim Erstellen eines benutzerdefinierten Images festlegen. Mit diesem Parameter werden eine oder mehrere Features für VM-Instanzen aktiviert, die das Image für ihre Bootlaufwerke nutzen. Folgende Funktionen sind verfügbar:

  • MULTI_IP_SUBNET: Zum Konfigurieren von Schnittstellen mit einer anderen Netzmaske als /32.
  • SECURE_BOOT: Aktiviert die Option für den sicheren UEFI-Start, der verhindert, dass nicht signierte Software gestartet wird oder nicht signierte Treiber auf der VM-Instanz geladen werden. Nachdem Sie diesen Parameter festgelegt haben, können Sie die sichere Startfunktion während der Erstellung der VM-Instanz aktivieren.
  • UEFI_COMPATIBLE: Aktiviert das Booten mit UEFI-Firmware.
  • VIRTIO_SCSI_MULTIQUEUE: Aktiviert Multi-Queue-SCSI-Funktionen für lokale SSD-Geräte. Diese Option ist eine Alternative zu NVMe.
    • Für Linux-Images können Sie VIRTIO_SCSI_MULTIQUEUE bei Images mit Kernel-Versionen ab 3.17 aktivieren.
    • Für Windows-Images können Sie VIRTIO_SCSI_MULTIQUEUE bei Images mit Treiberversionen ab 1.2.0.1621 aktivieren.
  • WINDOWS: Erforderlich für Windows Server-Images. Neuere öffentliche Images für Windows Server enthalten den Parameter WINDOWS zur Identifizierung als Windows-Image.

Verwenden Sie das gcloud-Befehlszeilentool oder die API, um Gastbetriebssystemfunktionen für Ihre benutzerdefinierten Images zu aktivieren.

gcloud

Mit dem Befehl gcloud compute images create erstellen Sie ein benutzerdefiniertes Image von einem Ihrer vorhandenen benutzerdefinierten Images, fügen aber auch das Flag --guest-os-features ein.

gcloud compute images create [IMAGE_NAME] \
      --source-image [SOURCE_IMAGE] \
      --source-image-project [IMAGE_PROJECT] \
      --guest-os-features="[FEATURE_ID],..." \
      --storage-location [LOCATION]
    

Dabei gilt:

  • [IMAGE_NAME] ist ein Name für das neue Image, das Sie erstellen möchten.
  • [SOURCE_IMAGE] ist das Image, von dem Sie das Image erstellen möchten.
  • [IMAGE_PROJECT] ist ein optionaler Parameter, der angibt, in welchem Projekt sich das Quell-Image befindet. Verwenden Sie diesen Parameter, wenn Sie ein Image aus einem anderen Projekt kopieren möchten.
  • [FEATURE_ID] ist eine ID für eine der verfügbaren Gastbetriebssystem-Funktionen. Sie können mehrere Funktionen als eine durch Kommas getrennte Liste angeben.
  • [LOCATION] ist ein optionales Flag, mit dem Sie die Region oder Multiregion festlegen können, in der Ihr Image gespeichert wird. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.

API

Stellen Sie eine POST-Anfrage an die Methode images().insert. Fügen Sie in den Anfragetext eine URL ein, die auf das Quellobjekt verweist, aus dem Sie das Image erstellen möchten. Ersetzen Sie Projekt und Zone durch Ihre eigene Projekt-ID und die Zone des nichtflüchtigen Speichers:

Image von einem nichtflüchtigen Speicher erstellen:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images

    {
     "name": "[IMAGE_NAME]",
     "sourceImage": "projects/[IMAGE_PROJECT]/global/images/[SOURCE_IMAGE]",
     "storageLocations": "[LOCATION]",
     "guestOsFeatures": [
      {
       "type": "[FEATURE_ID]"
      }
     ]
    }
    

Dabei gilt:

  • [IMAGE_NAME] ist ein Name für das neue Image, das Sie erstellen möchten.
  • [SOURCE_IMAGE] ist das Image, von dem Sie das Image erstellen möchten.
  • [IMAGE_PROJECT] ist ein Parameter, der angibt, in welchem Projekt sich das Quell-Image befindet.
  • [LOCATION] ist ein optionaler Parameter, mit dem Sie den Speicherort Ihres Images auswählen können. Geben Sie beispielsweise us an, um das Image an dem multiregionalen Standort us zu speichern, oder us-central1, um es in der Region us-central1 zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.
  • [FEATURE_ID] ist eine ID für eine der verfügbaren Gastbetriebssystem-Funktionen. Sie können mehrere Funktionen als eine durch Kommas getrennte Liste angeben.

Weitere Informationen zum Einfügen von Images finden Sie in der Image-Referenz.

Weitere Informationen