Benutzerdefiniertes Image zu Cloud Storage exportieren


Wenn Sie Daten eines Compute Engine-Bootlaufwerks aus einem Compute Engine-Projekt heraus verschieben müssen, können Sie ein Bootlaufwerk-Image als tar.gz-Datei in Cloud Storage exportieren. Wenn Sie ein Image eines nichtflüchtigen Speichers erstellen müssen, das beim Erstellen neuer nichtflüchtiger Speicher in Compute Engine verwendet werden soll, lesen Sie Benutzerdefiniertes Image erstellen.

Sie können ein benutzerdefiniertes Image sichern oder freigeben. Exportieren Sie es dafür zu Cloud Storage. Diese Methode ist ideal, um einzelne Images für Projekte freizugeben, die keinen Zugriff auf Ihre Images haben. Alternativ können Sie Images freigeben, indem Sie der Compute Engine-Image-Nutzerrolle das Image oder das Projekt zuweisen, das sie enthält.

Das folgende Diagramm zeigt einige typische Arbeitsabläufe, um ein benutzerdefiniertes Image zu erstellen und wiederzuverwenden.

Benutzerdefinierte Images erstellen und wiederverwenden
Abbildung 1. Beispiele für das Erstellen und Wiederverwenden von benutzerdefinierten Images

Hinweis

Limits und Einschränkungen

Verwenden Sie für Projekte, die durch VPC Service Controls geschützt werden, eine der folgenden Methoden:

Images mit einem Befehl exportieren

Image nach Cloud Storage exportieren

Sie können Ihre Images entweder mit der Google Cloud Console, der Google Cloud CLI oder der Cloud Build API exportieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Images auf.

    Zur Seite „Images“

  2. Klicken Sie auf den Namen des Images, das Sie exportieren möchten, um die Image-Detailseite aufzurufen. Sie können keine von Google bereitgestellten öffentlichen Images exportieren. Sie können nur Images exportieren, die Sie zuvor erstellt oder importiert haben.

  3. Klicken Sie auf der Image-Detailseite auf Exportieren, um die Seite Image exportieren zu öffnen.

  4. Wählen Sie auf der Seite Image exportieren das Exportformat des Images aus.

  5. Klicken Sie auf Durchsuchen, um den Cloud Storage-Speicherort auszuwählen, zu dem Sie das Image exportieren möchten.

  6. Wählen Sie einen vorhandenen Cloud Storage-Speicherort für den Export des Images aus. Oder folgen Sie der Anleitung zum Erstellen eines neuen Cloud Storage-Buckets und geben Sie dann einen Namen für den neuen Cloud Storage-Bucket ein.

  7. Wählen Sie nach der Auswahl des Cloud Storage-Speicherorts einen Dateinamen für das exportierte Image aus. Sie können entweder den standardmäßigen Dateinamen oder einen eigenen verwenden.

  8. Nachdem Sie einen Cloud Storage-Speicherort ausgewählt und einen Dateinamen für das Image eingegeben haben, klicken Sie auf Auswählen.

  9. Klicken Sie auf der Seite Image exportieren auf Exportieren. Nachdem Sie Exportieren ausgewählt haben, zeigt die Cloud Console den Verlauf des Imageexports an, unter dem Sie den Exportvorgang des Images ansehen können. Wenn Sie weitere Informationen zum Image-Exportvorgang wünschen, klicken Sie auf die Cloud Build-ID, um die Seite Image-Exportdetails aufzurufen. Dort können Sie das Image-Exportlog ansehen und herunterladen.

  10. Gehen Sie zur Seite Storage, um auf das exportierte Image zuzugreifen.

    Storage öffnen

gcloud

In der Regel ist es am besten, ein Image mit dem Befehl gcloud compute images export zu Cloud Storage zu exportieren. Dieser Befehl verwendet Daisy, um die zahlreichen für den Export eines Images erforderlichen Schritte zu verknüpfen. Bei dem Befehl wird davon ausgegangen, dass Sie bereits ein Image erstellt haben, z. B. mit dem Befehl gcloud compute images create.

Führen Sie über die Google Cloud CLI folgenden Befehl aus:

gcloud compute images export \
    --destination-uri DESTINATION_URI \
    --image IMAGE_NAME

Dabei gilt:

  • DESTINATION_URI ist der Ziel-URI in Cloud Storage für die exportierte Image-Datei.
  • IMAGE_NAME ist der Name des Laufwerk-Images, das exportiert werden soll.

Standardmäßig werden Images im Compute Engine-Format exportiert: eine mit gzip komprimierte disk.raw-Datei mit der Erweiterung "tar". Wenn Sie Images in andere Formate exportieren möchten, die vom Laufwerk-Image-Dienstprogramm QEMU unterstützt werden, können Sie das Flag --export-format verwenden. Gültige Formate sind vmdk, vhdx, vpc, vdi und qcow2.

Beispiel

Mit dem folgenden Befehl wird z. B. ein Image mit dem Namen my-image von my-project in einen Cloud Storage-Bucket mit dem Namen my-bucket exportiert. Standardmäßig wird das Image als disk.raw file exportiert und in das Dateiformat tar.gz komprimiert.

gcloud compute images export \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --image my-image \
    --project my-project

Informationen zu Flags finden Sie in der Referenzdokumentation zu gcloud compute images export.

API

Erstellen Sie in der API eine POST-Anfrage an die Cloud Build API.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout": "7200s",
  "steps":[
    {
      "args":[
        "-timeout=7000s",
        "-source_image=SOURCE_IMAGE",
        "-client_id=api",
        "-format=IMAGE_FORMAT",
        "-destination_uri=DESTINATION_URI"
      ],
      "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-daisy",
    "gce-daisy-image-export"
  ]
}

Dabei gilt:

  • PROJECT_ID ist die ID des Projekts, das das zu exportierende Image enthält.
  • SOURCE_IMAGE ist der Name des Image, das exportiert werden soll.
  • IMAGE_FORMAT ist das Format des exportierten Image. Gültige Formate sind vmdk, vhdx, vpc, vdi und qcow2.
  • DESTINATION_URI ist der URI des Speicherorts in Cloud Storage, in den Sie die Bilddatei exportieren möchten. Beispiel: gs://my-bucket/my-exported-image.vmdk

Weitere args-Werte, die Sie angeben können, finden Sie im Bereich zu optionalen Flags auf der GitHub-Seite für den VM-Image-Export.

Beispielantwort

Die folgende Beispielantwort sieht ungefähr so aus wie die zurückgegebene Ausgabe:

{
"name": "operations/build/myproject-12345/operation-1578608233418",
"metadata": {
 "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata",
 "build": {
  "id": "3a2055bc-ccbd-4101-9434-d376b88b8940",
  "status": "QUEUED",
  "createTime": "2019-10-02T18:59:13.393492020Z",
  "steps": [
   {
    "name": "gcr.io/compute-image-tools/gce_vm_image_export:release",
    "env": [
     "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940"
    ],
    "args": [
     "-timeout=7056s",
     "-source_image=my-image",
     "-client_id=api",
     "-format=vmdk",
     "-destination_uri=gs://my-bucket/my-exported-image.vmdk"
    ]
   }
  ],
  "timeout": "7200s",
  "projectId": "myproject-12345",
  "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com",
  "options": {
   "logging": "LEGACY"
  },
  "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456"
 }
 }

Es gibt mehrere Möglichkeiten, den Build zu überwachen:

  • Ausführen einer projects.builds.get-Anfrage mit der zurückgegebenen build-id
  • Prüfen der Logs, die unter der bereitgestellten logUrl gehostet werden

Image aus einem Projekt mithilfe eines benutzerdefinierten Compute Engine-Dienstkontos exportieren

Während eines Image-Exports wird in Ihrem Projekt eine temporäre VM-Instanz erstellt. Das Image-Export-Tool auf dieser temporären VM muss authentifiziert sein.

Ein Dienstkonto ist eine Identität, die mit einer VM verbunden ist. Auf Zugriffstoken für Dienstkonten kann über den Instanzmetadatenserver zugegriffen und zur Authentifizierung des Image-Export-Tools auf der VM verwendet werden.

Beim Exportieren wird standardmäßig der Compute Engine-Dienst-Agent des Projekts verwendet. Wenn jedoch das Compute Engine-Standarddienstkonto in Ihrem Projekt deaktiviert ist oder Sie ein benutzerdefiniertes Compute Engine-Dienstkonto verwenden möchten, müssen Sie ein Dienstkonto erstellen und für den Exportvorgang angeben.

Sie können Ihre Images entweder mit der Google Cloud CLI oder der Cloud Build API exportieren.

gcloud

  1. Erstellen Sie ein Dienstkonto und weisen Sie die Mindestrollen zu. Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.

    Dem angegebenen Compute Engine-Dienstkonto müssen mindestens die folgenden Rollen zugewiesen sein:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin

    Weitere Informationen finden Sie unter Compute Engine-Dienstkonto die erforderlichen Rollen zuweisen.

  2. Verwenden Sie den Befehl gcloud compute images export, um das Image zu exportieren.

    gcloud compute images export \
        --destination-uri DESTINATION_URI \
        --image IMAGE_NAME \
        --compute-service-account SERVICE_ACCOUNT_EMAIL

    Dabei gilt:

    • DESTINATION_URI ist der Ziel-URI in Cloud Storage für die exportierte Image-Datei.
    • IMAGE_NAME ist der Name des Laufwerk-Images, das exportiert werden soll.
    • SERVICE_ACCOUNT_EMAIL ist die E-Mail-Adresse des Compute Engine-Dienstkontos, das im vorherigen Schritt erstellt wurde.

Beispiel

Der folgende Befehl exportiert beispielsweise ein Image mit dem Namen my-image aus my-project in einen Cloud Storage-Bucket mit dem Namen my-bucket mit einem Dienstkonto mit der E-Mail-Adresse image-export-service-account@proj-12345.iam.gserviceaccount.com. Standardmäßig wird das Image als disk.raw-Datei exportiert und im Dateiformat tar.gz komprimiert.

gcloud compute images export \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --image my-image \
    --project my-project \
    --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
    

Informationen zu Flags finden Sie in der Referenzdokumentation zu gcloud compute images export.

API

  1. Erstellen Sie ein Dienstkonto und weisen Sie die Mindestrollen zu. Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.

    Dem angegebenen Compute Engine-Dienstkonto müssen mindestens die folgenden Rollen zugewiesen sein:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin

    Weitere Informationen finden Sie unter Erforderliche Rollen für das Compute Engine-Dienstkonto zuweisen.

  2. Erstellen Sie in der API eine POST-Anfrage an die Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "timeout": "7200s",
      "steps":[
        {
          "args":[
            "-timeout=7000s",
            "-source_image=SOURCE_IMAGE",
            "-client_id=api",
            "-format=IMAGE_FORMAT",
            "-destination_uri=DESTINATION_URI",
            "-compute_service_account=SERVICE_ACCOUNT_EMAIL"
          ],
          "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Dabei gilt:

    • PROJECT_ID ist die ID des Projekts, das das zu exportierende Image enthält.
    • SOURCE_IMAGE ist der Name des Image, das exportiert werden soll.
    • IMAGE_FORMAT ist das Format des exportierten Images. Gültige Formate sind vmdk, vhdx, vpc, vdi und qcow2.
    • DESTINATION_URI ist der URI des Speicherorts in Cloud Storage, in den Sie die Bilddatei exportieren möchten. Beispiel: gs://my-bucket/my-exported-image.vmdk
    • SERVICE_ACCOUNT_EMAIL ist die E-Mail-Adresse des Compute Engine-Dienstkontos, das im vorherigen Schritt erstellt wurde.

Weitere args-Werte, die Sie angeben können, finden Sie im Bereich zu optionalen Flags auf der GitHub-Seite für den VM-Image-Export.

Image mit freigegebener VPC exportieren

Bevor Sie ein Image exportieren, das eine freigegebene VPC verwendet, müssen Sie dem Cloud Build-Dienstkonto die Rolle compute.networkUser hinzufügen. Weitere Informationen finden Sie unter Erforderliche Rollen für das Cloud Build-Dienstkonto zuweisen.

Sie können das Image entweder über die Google Cloud CLI oder die Cloud Build API exportieren.

gcloud

Exportieren Sie das Image mit dem Befehl gcloud compute images export.

gcloud compute images export \
    --image IMAGE_NAME \
    --destination-uri DESTINATION_URI \
    --project PROJECT_ID \
    --network NETWORK \
    [--subnet SUBNET \]
    [--zone ZONE]

Dabei gilt:

  • IMAGE_NAME ist der Name des Image, das exportiert werden soll.
  • DESTINATION_URI ist der URI des Speicherorts in Cloud Storage, in den Sie die Bilddatei exportieren möchten.
  • PROJECT_ID ist die ID des Projekts, in dem sich das Image befindet.
  • NETWORK ist der vollständige Pfad zu einem freigegebenen VPC-Netzwerk. Beispiel: projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
  • SUBNET ist der vollständige Pfad zu einem freigegebenen VPC-Subnetzwerk. Beispiel: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

    Die Angabe dieses Modus hängt vom VPC-Netzwerkmodus ab.

    • Wenn das VPC-Netzwerk den Legacy-Modus verwendet, geben Sie kein Subnetz an.
    • Wenn das VPC-Netzwerk den automatischen Modus verwendet, ist die Angabe des Subnetzes optional.
    • Wenn das VPC-Netzwerk den benutzerdefinierten Modus verwendet, muss dieses Feld angegeben werden.
  • ZONE ist die Zone, die für den Export verwendet werden soll. Diese Zone muss mit der Region des Subnetzes übereinstimmen. Wenn das SUBNET beispielsweise in der Region us-west1 liegt, muss die Exportzone us-west1-a, us-west1-b oder us-west1-c sein.

    In den meisten Fällen ist die Angabe einer Zone optional. Wenn SUBNET angegeben ist, muss die Zone angegeben werden.

Mit dem folgenden Befehl wird z. B. ein Image mit dem Namen example-image von my-project in einen Cloud Storage-Bucket mit dem Namen my-bucket exportiert. In diesem Beispiel verwendet das VPC-Netzwerk (Virtual Private Cloud) my-shared-vp ein benutzerdefiniertes Subnetz (my-custom-subnet). Standardmäßig wird das Image als disk.raw-Datei exportiert und in das Dateiformat tar.gz komprimiert.

Beispielbefehl

gcloud compute images export \
    --image example-image \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --project my-project \
    --network projects/my-vpc-project/global/networks/my-shared-vpc \
    --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-custom-subnet \
    --zone us-west1-c
 

API

  1. Fügen Sie das Image zu Cloud Storage hinzu.

  2. Erstellen Sie in der API eine POST-Anfrage an die Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "timeout": "7200s",
      "steps":[
        {
          "args":[
            "-timeout=7000s",
            "-source_image=SOURCE_IMAGE",
            "-client_id=api",
            "-format=IMAGE_FORMAT",
            "-destination_uri=DESTINATION_URI",
            "-network=NETWORK",
            "-subnet=SUBNET",
            "-zone=ZONE"
          ],
          "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Dabei gilt:

    • PROJECT_ID ist die ID des Projekts, das das zu exportierende Image enthält.
    • SOURCE_IMAGE ist der Name des Image, das exportiert werden soll.
    • IMAGE_FORMAT ist das Format des exportierten Image. Gültige Formate sind vmdk, vhdx, vpc, vdi und qcow2.
    • DESTINATION_URI ist der URI des Speicherorts in Cloud Storage, in den Sie die Bilddatei exportieren möchten. Beispiel: gs://my-bucket/my-exported-image.vmdk
    • NETWORK ist der vollständige Pfad zu einem freigegebenen VPC-Netzwerk. Beispiel: projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
    • SUBNET ist der vollständige Pfad zu einem freigegebenen VPC-Subnetzwerk. Beispiel: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

      Die Angabe dieses Modus hängt vom VPC-Netzwerkmodus ab.

      • Wenn das VPC-Netzwerk den Legacy-Modus verwendet, geben Sie kein Subnetz an.
      • Wenn das VPC-Netzwerk den automatischen Modus verwendet, ist die Angabe des Subnetzes optional.
      • Wenn das VPC-Netzwerk den benutzerdefinierten Modus verwendet, muss dieses Feld angegeben werden.
    • ZONE ist die Zone, die für den Export verwendet werden soll. Diese Zone muss mit der Region des Subnetzes übereinstimmen. Wenn das SUBNET beispielsweise in der Region us-west1 liegt, muss die Exportzone us-west1-a, us-west1-b oder us-west1-c sein.

      In den meisten Fällen ist die Angabe einer Zone optional. Wenn SUBNET angegeben ist, muss die Zone angegeben werden.

    Weitere args-Werte, die Sie angeben können, finden Sie im Bereich zu optionalen Flags auf der GitHub-Seite für den VM-Image-Export.

Image manuell erstellen und exportieren

Wenn die Befehle gcloud compute images create und gcloud compute images export Ihren Anforderungen nicht gerecht werden, können Sie ein Image manuell über eine Compute Engine-Instanz erstellen und exportieren. Dieser Vorgang besteht aus einzelnen Schritten. Zuerst wird ein Image erstellt und dann das Image exportiert.

Beachten Sie im folgenden Beispiel, dass das erstellte Laufwerk als image-disk bezeichnet wird.

So erstellen und exportieren Sie ein Image:

  1. Optional: Beenden Sie die Instanz, der das Laufwerk hinzugefügt wurde, bevor Sie einen Snapshot erstellen. Durch Beenden der Instanz wird die Integrität der Laufwerksinhalte im Snapshot sichergestellt. Ersetzen Sie DISK_NAME durch den Namen des Laufwerks, das Sie zum Erstellen des Snapshots verwenden möchten.

  2. Erstellen Sie einen Snapshot des Laufwerks. Geben Sie dem Snapshot den Namen image-snapshot.

    gcloud compute disks snapshot DISK_NAME \
        --snapshot-names image-snapshot
  3. Verwenden Sie den Snapshot image-snapshot, um ein neues Laufwerk mit dem Namen image-disk zu erstellen. Führen Sie dazu den folgenden Befehl aus:

    gcloud compute disks create image-disk \
        --source-snapshot image-snapshot
  4. Erstellen Sie für Ihre tar-Datei ein temporäres Laufwerk mit dem Namen temporary-disk und legen Sie die SIZE so fest, dass das Laufwerk mindestens 50 % größer als das Image-Laufwerk ist.

    Sie können das Laufwerk anschließend trennen und löschen.

    gcloud compute disks create temporary-disk \
        --size SIZE

    Dabei ist SIZE die Größe des temporären Laufwerks in Gigabyte oder Terabyte. Geben Sie beispielsweise 100GB an, um ein Laufwerk von 100 Gigabyte zu erstellen.

  5. Erstellen Sie eine Instanz und aktivieren Sie in der Instanz den Gültigkeitsbereich storage-rw. Hängen Sie außerdem image-disk und temporary-disk als sekundäre Laufwerke mit spezifischen device-name-Attributen an die Instanz an. Ersetzen Sie dabei VM_NAME durch den Namen der zu erstellenden Instanz.

    gcloud compute instances create VM_NAME \
        --scopes storage-rw \
        --disk name=image-disk,device-name=image-disk \
        --disk name=temporary-disk,device-name=temporary-disk

    Achten Sie darauf, die Dienstkontenbereiche zu übertragen, damit Sie Ihre Datei später in Cloud Storage hochladen können.

    Weitere Informationen finden Sie bei Bedarf in der Dokumentation Eine neue Instanz starten.

  6. Stellen Sie eine Verbindung zur Instanz her. Ersetzen Sie dabei VM_NAME durch den Namen der Instanz, zu der eine Verbindung hergestellt werden soll.

    gcloud compute ssh VM_NAME
  7. Formatieren Sie ein neues temporäres Laufwerk und stellen Sie es bereit. Der Formatierungsvorgang löscht alle Inhalte des temporären Laufwerks.

    sudo mkdir /mnt/tmp
    sudo mkfs.ext4 -F /dev/disk/by-id/google-temporary-disk
    sudo mount -o discard,defaults /dev/disk/by-id/google-temporary-disk /mnt/tmp
  8. Optional: Stellen Sie das Image-Laufwerk bereit und nehmen Sie vor dem Erstellen der Datei tar zusätzliche Änderungen vor. Wenn Sie beispielsweise nicht möchten, dass die im Verzeichnis /home vorhandenen Dateien Teil Ihres Images sind, müssen Sie diese löschen. Stellen Sie die Partitionen bereit, die Sie anpassen möchten, und ändern Sie die gewünschten Daten auf dem Laufwerk. Anschließend heben Sie die Bereitstellung des Laufwerks auf.

    1. Erstellen Sie ein Verzeichnis zum Bereitstellen Ihres Laufwerks oder Ihrer Partition.

      sudo mkdir /mnt/image-disk
    2. Verwenden Sie den Befehl ls, um festzustellen, welches Laufwerk oder welche Partition Sie bereitstellen müssen.

      ls /dev/disk/by-id/

      Der Befehl gibt eine Liste von Laufwerk-IDs und Partitionen aus. Das folgende Laufwerk verfügt beispielsweise über eine Partitionstabelle mit einer Partition. Die ID google-image-disk verweist auf das komplette Laufwerk, von dem Sie ein Image erstellen möchten. Die ID google-image-disk-part1 verweist auf die erste Partition dieses Laufwerks. Stellen Sie die Partition bereit, wenn Sie Änderungen am Laufwerk vornehmen wollen, und erstellen Sie anschließend ein Image des kompletten Laufwerks.

      google-image-disk
      google-image-disk-part1
      
    3. Stellen Sie das Laufwerk oder die Partition bereit. Wenn Ihr Laufwerk über eine Partitionstabelle verfügt, stellen Sie die einzelnen Partitionen Ihres Laufwerks bereit. Beispiel: google-image-disk-part1.

      sudo mount /dev/disk/by-id/google-image-disk-part1 /mnt/image-disk

      Wenn Ihr Laufwerk im RAW-Format formatiert ist und keine Partitionstabelle besitzt, stellen Sie das komplette Laufwerk google-image-disk bereit.

      sudo mount /dev/disk/by-id/google-image-disk /mnt/image-disk
    4. Passen Sie die Dateien im Verzeichnis /mnt/image-disk an, um die Dateien auf dem Laufwerk zu konfigurieren. Unter Umständen möchten Sie die Datei /mnt/image-disk/home/[USER]/.ssh/authorized_keys entfernen, damit Ihre SSH-Schlüssel nicht freigegeben werden.

    5. Heben Sie die Bereitstellung des Laufwerks auf, nachdem Sie die Dateien angepasst haben.

      sudo umount /mnt/image-disk/
  9. Erstellen Sie ein tar des Images.

    Wenn Sie mit der Anpassung Ihrer Dateien fertig sind, erstellen Sie auf Ihrem temporären Laufwerk eine Raw-Disk-Datei. Die Bezeichnung des Raw-Disk-Images muss 'disk.raw‘ lauten:

     sudo dd if=/dev/disk/by-id/google-image-disk of=/mnt/tmp/disk.raw bs=4096

    Erstellen Sie dann die Datei tar.gz:

    cd /mnt/tmp

    sudo tar czvf myimage.tar.gz disk.raw

    Mit diesem Befehl wird an folgendem Speicherort ein Image der Instanz erstellt:

    /mnt/tmp/myimage.tar.gz

  10. Image in Cloud Storage hochladen

    Verwenden Sie zum Hochladen der tar-Datei in Cloud Storage das gsutil-Befehlszeilentool, das auf Ihrer Instanz vorinstalliert ist.

    1. Erstellen Sie mit gsutil einen Bucket.

      Lesen Sie sich vor dem Erstellen des Buckets die Benennungsrichtlinien für Buckets durch. Erstellen Sie anschließend Ihren Bucket mit dem folgenden Befehl: Ersetzen Sie dabei BUCKET_NAME durch den Namen des zu erstellenden Buckets.

      me@example-instance:~$ 
      gsutil mb gs://BUCKET_NAME
    2. Kopieren Sie die Datei in Ihren neuen Bucket. Ersetzen Sie dabei BUCKET_NAME durch den Namen des Buckets, in den die Datei kopiert werden soll.

      me@example-instance:~$ 
      gsutil cp /mnt/tmp/myimage.tar.gz gs://BUCKET_NAME

Sie haben Ihre Datei zu Cloud Storage exportiert. Sie können das Image nun für andere Nutzer freigeben oder die tar-Datei verwenden, um einem Google Cloud Console-Projekt ein neues Image hinzuzufügen.

Nächste Schritte