In diesem Dokument wird beschrieben, wie Sie eine VM in ein anderes Projekt kopieren.
Hinweise
- Lesen Sie die Best Practices für Snapshots nichtflüchtiger Speicher und bereiten Sie das Bootlaufwerk für Snapshots vor.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Cloud de Confiance by S3NS Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud init - Set a default region and zone.
-
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für das Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Kopieren von VMs zwischen Projekten benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Kopieren von VMs zwischen Projekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um eine VM zwischen Projekten zu kopieren:
compute.instances.createfür das Projekt-
Zum Erstellen der VM mit einem benutzerdefinierten Image:
compute.images.useReadOnlyfür das Image -
Zum Erstellen der VM mit einem Snapshot:
compute.snapshots.useReadOnlyfür den Snapshot -
Zum Erstellen der VM mit einer Instanzvorlage:
compute.instanceTemplates.useReadOnlyfür die Instanzvorlage -
Zum Angeben eines Subnetzes für Ihre VM:
compute.subnetworks.usefür das Projekt oder für das ausgewählte Subnetz -
Zum Festlegen einer statischen IP-Adresse für die VM:
compute.addresses.usefür das Projekt -
Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein VPC-Netzwerk verwenden:
compute.subnetworks.useExternalIpfür das Projekt oder für das ausgewählte Subnetz -
Zum Zuweisen eines Legacy-Netzwerks zur VM:
compute.networks.usefür das Projekt -
Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein Legacy-Netzwerk verwenden:
compute.networks.useExternalIpfür das Projekt -
Zum Festlegen von Metadaten der VM-Instanz für die VM:
compute.instances.setMetadatafür das Projekt -
Zum Festlegen von Tags für die VM:
compute.instances.setTagsfür die VM -
Zum Festlegen von Labels für die VM:
compute.instances.setLabelsfür die VM -
Zum Festlegen eines Dienstkontos für die VM:
compute.instances.setServiceAccountfür die VM -
Zum Erstellen eines neuen Laufwerks für die VM:
compute.disks.createfür das Projekt -
Zum Anhängen eines vorhandenen Laufwerks im Lese- oder Lese-/Schreibmodus:
compute.disks.usefür das Laufwerk -
Zum Anhängen eines vorhandenen Laufwerks im Lesemodus:
compute.disks.useReadOnlyfür das Laufwerk
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
VM in ein anderes Projekt kopieren
Erstellen Sie in Ihrem Quellprojekt mit einem der folgenden Befehle einen Snapshot des Bootlaufwerks der VM:
Zonales Bootlaufwerk
Wenn die VM ein zonales Bootlaufwerk hat, erstellen Sie mit folgendem Befehl einen Snapshot:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONEDabei gilt:
- SNAPSHOT_NAME: Ein Name für den Snapshot.
- SOURCE_DISK: Der Name des zonalen Persistent Disk-Volumes, von dem Sie einen Snapshot erstellen möchten.
- SNAPSHOT_TYPE: Der Snapshot-Typ, entweder STANDARD oder ARCHIVE. Wenn kein Snapshot-Typ angegeben ist, wird ein STANDARD-Snapshot erstellt. Wählen Sie „Archive“ aus, um eine kostengünstigere Datenaufbewahrung zu ermöglichen.
- SOURCE_DISK_ZONE: Die Zone des zonalen Persistent Disk-Volumes, von dem Sie einen Snapshot erstellen möchten.
Regionales Bootlaufwerk
Wenn Ihre VM ein regionales Bootlaufwerk hat, erstellen Sie mit folgendem Befehl einen Snapshot:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPEDabei gilt:
- SNAPSHOT_NAME: Ein Name für den Snapshot.
- SOURCE_DISK: Der Name des regionalen Persistent Disk-Volumes, von dem Sie einen Snapshot erstellen möchten.
- SOURCE_DISK_REGION: Der Name des regionalen Persistent Disk-Volumes, von dem Sie einen Snapshot erstellen möchten
- SNAPSHOT_TYPE: Der Snapshot-Typ, entweder STANDARD oder ARCHIVE. Wenn kein Snapshot-Typ angegeben ist, wird ein STANDARD-Snapshot erstellt.
Erstellen Sie mit folgendem Befehl ein benutzerdefiniertes Image aus dem Snapshot:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]Dabei gilt:
IMAGE_NAMEist ein Name für das neue ImageSOURCE_SNAPSHOTist der Snapshot, von dem Sie das Image erstellen möchten.LOCATION(Optional): Ein Flag, mit dem Sie die Region oder Multiregion festlegen können, in der Ihr Image gespeichert wird. Geben Sie beispielsweiseusan, um das Image in der Multiregionuszu speichern, oderus-central1, um es in der Regionus-central1zu speichern. Wenn Sie keine Auswahl treffen, speichert Compute Engine das Image in der Multiregion, die dem Speicherort Ihrer Image-Quelle am nächsten ist.
Optional: Geben Sie das benutzerdefinierte Image für Nutzer frei, die VMs im Zielprojekt erstellen. Weitere Informationen zum Freigeben benutzerdefinierter Images finden Sie unter Benutzerdefiniertes Image innerhalb einer Organisation freigeben.
Erstellen Sie in Ihrem Zielprojekt mit folgendem Befehl eine VM aus dem benutzerdefinierten Image:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ IMAGE_FLAG \ --subnet SUBNETErsetzen Sie Folgendes:
VM_NAME: Der Name der VM.IMAGE_PROJECT: Die ID des Cloud de Confiance -Projekts, das das Image enthält.IMAGE_FLAG: Geben Sie eine der folgenden Optionen an:- Verwenden Sie das Flag
--image IMAGE_NAME, um ein benutzerdefiniertes Image anzugeben.Beispiel:
--image my-debian-image-v2. - Wenn Sie Ihre benutzerdefinierten Images als Teil einer benutzerdefinierten Image-Familie erstellt haben, verwenden Sie das Flag
--image-family IMAGE_FAMILY_NAME, um diese benutzerdefinierte Image-Familie anzugeben.Dadurch wird die VM aus der neuesten nicht verworfenen Version des Betriebssystem-Images und der Betriebssystemversion in Ihrer benutzerdefinierten Image-Familie erstellt. Wenn Sie beispielsweise
--image-family my-debian-familyangeben, erstellt Compute Engine eine VM aus dem neuesten Betriebssystem-Image in Ihrer benutzerdefinierten Image-Familiemy-debian-family.
- Verwenden Sie das Flag
SUBNET: Wenn sich das Subnetz und die Instanz im selben Projekt befinden, ersetzen SieSUBNETdurch den Namen eines Subnetzes, das sich in derselben Region wie die Instanz befindet.Wenn Sie ein Subnetz in einem freigegebene VPC-Netzwerk angeben möchten, ersetzen Sie
SUBNETdurch einen String im folgenden Format:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAMEErsetzen Sie Folgendes:
HOST_PROJECT_ID: die Projekt-ID des freigegebene VPC-HostprojektsREGION: Die Region des Subnetzes.SUBNET_NAME: Name des Subnetzes
Die Region des Subnetzes für ein freigegebene VPC-Netzwerk muss auch mit der Region übereinstimmen, die die Instanz enthält.
Nächste Schritte
- Passen Sie das VPC-Netzwerk des Zielprojekts an.