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.
Hinweis
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, gehen Sie so vor:
- Installieren Sie die Google Cloud CLI oder aktualisieren Sie sie auf die neueste Version.
- Legen Sie eine Standardregion und -zone fest.
- Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugang ein.
- Lesen Sie die Dokumentation zu Images.
- Wenn für das Projekt, aus dem Sie das Image exportieren möchten, eine Trusted Image-Richtlinie definiert ist, fügen Sie
projects/compute-image-import
undprojects/compute-image-tools
zur Liste der zulässigen Herausgeber hinzu. - Informationen zu den Anforderungen für das Exportieren von Images finden Sie unter Voraussetzungen für den Import und Export von VM-Images.
Limits und Einschränkungen
Verwenden Sie für Projekte, die durch VPC Service Controls geschützt werden, eine der folgenden Methoden:
- aus dem Projekt exportieren, in dem sich das Image befindet
- das Image manuell exportieren
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
Rufen Sie in der Google Cloud Console die Seite Images auf.
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.
Klicken Sie auf der Image-Detailseite auf Exportieren, um die Seite Image exportieren zu öffnen.
Wählen Sie auf der Seite Image exportieren das Exportformat des Images aus.
Klicken Sie auf Durchsuchen, um den Cloud Storage-Speicherort auszuwählen, zu dem Sie das Image exportieren möchten.
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.
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.
Nachdem Sie einen Cloud Storage-Speicherort ausgewählt und einen Dateinamen für das Image eingegeben haben, klicken Sie auf Auswählen.
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.
Gehen Sie zur Seite Storage, um auf das exportierte Image zuzugreifen.
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 sindvmdk
,vhdx
,vpc
,vdi
undqcow2
.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
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.
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
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.
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 sindvmdk
,vhdx
,vpc
,vdi
undqcow2
.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 dasSUBNET
beispielsweise in der Regionus-west1
liegt, muss die Exportzoneus-west1-a
,us-west1-b
oderus-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
Fügen Sie das Image zu Cloud Storage hinzu.
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 sindvmdk
,vhdx
,vpc
,vdi
undqcow2
.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 dasSUBNET
beispielsweise in der Regionus-west1
liegt, muss die Exportzoneus-west1-a
,us-west1-b
oderus-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:
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.Erstellen Sie einen Snapshot des Laufwerks. Geben Sie dem Snapshot den Namen
image-snapshot
.gcloud compute disks snapshot DISK_NAME \ --snapshot-names image-snapshot
Verwenden Sie den Snapshot
image-snapshot
, um ein neues Laufwerk mit dem Namenimage-disk
zu erstellen. Führen Sie dazu den folgenden Befehl aus:gcloud compute disks create image-disk \ --source-snapshot image-snapshot
Erstellen Sie für Ihre
tar
-Datei ein temporäres Laufwerk mit dem Namentemporary-disk
und legen Sie dieSIZE
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 beispielsweise100GB
an, um ein Laufwerk von 100 Gigabyte zu erstellen.Erstellen Sie eine Instanz und aktivieren Sie in der Instanz den Gültigkeitsbereich
storage-rw
. Hängen Sie außerdemimage-disk
undtemporary-disk
als sekundäre Laufwerke mit spezifischendevice-name
-Attributen an die Instanz an. Ersetzen Sie dabeiVM_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.
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
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
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.Erstellen Sie ein Verzeichnis zum Bereitstellen Ihres Laufwerks oder Ihrer Partition.
sudo mkdir /mnt/image-disk
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 IDgoogle-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
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
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.Heben Sie die Bereitstellung des Laufwerks auf, nachdem Sie die Dateien angepasst haben.
sudo umount /mnt/image-disk/
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
Image in Cloud Storage hochladen
Verwenden Sie zum Hochladen der
tar
-Datei in Cloud Storage das gsutil-Befehlszeilentool, das auf Ihrer Instanz vorinstalliert ist.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
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
- Images durch Zuweisen der Image-Nutzerrolle freigeben
- Informationen zu den für Compute Engine verfügbaren Importmethoden