Questo documento descrive come copiare la VM in un progetto diverso.
Prima di iniziare
- Rivedi Best practice per disco permanente permanenti e prepara il disco di avvio per gli snapshot.
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
la procedura di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per copiare la VM tra progetti,
chiedi all'amministratore di concederti
Ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questo ruolo predefinito contiene le autorizzazioni necessarie per copiare la VM tra progetti. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per copiare la VM tra progetti sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
del progetto -
Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine -
Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot -
Per utilizzare un modello di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul modello di istanza -
Per assegnare una rete legacy alla VM:
compute.networks.use
del progetto -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
del progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy:
compute.networks.useExternalIp
del progetto -
Per specificare una subnet per la tua VM:
compute.subnetworks.use
del progetto o della subnet scelta -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
del progetto o della subnet scelta -
Per impostare i metadati di un'istanza VM per la VM:
compute.instances.setMetadata
del progetto -
Per impostare i tag per la VM:
compute.instances.setTags
sulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM -
Per impostare un account di servizio da utilizzare per la VM:
compute.instances.setServiceAccount
sulla VM -
Per creare un nuovo disco per la VM:
compute.disks.create
del progetto -
Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura:
compute.disks.use
sul disco -
Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.
Copia una VM in un altro progetto
Nel progetto di origine, crea uno snapshot del disco di avvio della VM utilizzando uno uno dei seguenti comandi:
Disco di avvio di zona
Se la tua VM ha un disco di avvio a livello di zona, crea uno snapshot utilizzando il seguente codice :
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONE
Sostituisci quanto segue:
- SNAPSHOT_NAME: un nome per lo snapshot.
- SOURCE_DISK: il nome del volume del Persistent Disk a livello di zona da cui vuoi per creare uno snapshot.
- SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se il tipo di snapshot non è specificato, viene restituito un valore STANDARD viene creato uno snapshot. Scegli Archivia per conservare i dati in modo più conveniente.
- SOURCE_DISK_ZONE: la zona del volume del Persistent Disk a livello di zona da cui vuoi per creare uno snapshot.
Disco di avvio regionale
Se la tua VM ha un disco di avvio a livello di regione, crea uno snapshot utilizzando seguente comando:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPE
Sostituisci quanto segue:
- SNAPSHOT_NAME: un nome per lo snapshot.
- SOURCE_DISK: il nome del volume del Persistent Disk regionale da cui vuoi per creare uno snapshot.
- SOURCE_DISK_REGION: la regione del volume del Persistent Disk regionale da cui vuoi creare uno snapshot.
- SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se il tipo di snapshot non è specificato, viene restituito un valore STANDARD viene creato uno snapshot.
Crea un'immagine personalizzata dallo snapshot utilizzando il comando seguente:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]
Sostituisci quanto segue:
IMAGE_NAME
: un nome per la nuova immagineSOURCE_SNAPSHOT
: l'istantanea da cui vuoi per creare l'immagineLOCATION
: facoltativo: un flag che ti consente di indicare la regione o le regioni in cui è archiviata l'immagine. Ad esempio: specificaus
per archiviare l'immagine inus
in più regioni ous-central1
per archiviarli Regioneus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località multiregionale più vicina alla posizione di origine dell'immagine.
(Facoltativo) Condividi l'immagine personalizzata con gli utenti che creano VM nel progetto di destinazione. Per ulteriori informazioni sulla condivisione di immagini personalizzate, vedi Condivisione di un'immagine personalizzata all'interno di un'organizzazione.
Nel progetto di destinazione, crea una VM dall'immagine personalizzata utilizzando seguente comando:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ [--image IMAGE | --image-family IMAGE_FAMILY] --subnet SUBNET
Sostituisci quanto segue:
VM_NAME
: nome della VMIMAGE_PROJECT
: nome del progetto che contiene l'immagineIMAGE
oIMAGE_FAMILY
: specificare una delle seguenti opzioni:IMAGE
: nome dell'immagine personalizzataAd esempio,
--image=my-debian-image-v2
.IMAGE_FAMILY
: se hai creato tu le immagini personalizzate nell'ambito di una famiglia di immagini personalizzate, e specificare la famiglia di immagini personalizzate.Questa operazione crea la VM immagine del sistema operativo recente e non deprecata e versione del sistema operativo nella tua famiglia di immagini personalizzata. Ad esempio, se specifichi
--image-family=my-debian-family
, Compute Engine crea una VM dall'immagine del sistema operativo più recente Famiglia di immaginimy-debian-family
.
SUBNET
: se la subnet e l'istanza si trovano nello stesso progetto, sostituisci SUBNET con il nome di una subnet che si trova nella stessa regione in esecuzione in un'istanza Compute Engine.Per specificare una subnet in una rete VPC condiviso, sostituisci
SUBNET
con una stringa nel formato:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Sostituisci quanto segue:
HOST_PROJECT_ID
è l'ID progetto dell'host del VPC condiviso progettoREGION
è la regione della subnetSUBNET_NAME
è il nome della subnet
La regione della subnet per una rete VPC condivisa deve corrispondere anche alla regione che contiene l'istanza.
Passaggi successivi
- personalizza il progetto Rete VPC.