Copia delle VM tra progetti

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.
    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. 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

  1. 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.

  2. 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 immagine
    • SOURCE_SNAPSHOT: l'istantanea da cui vuoi per creare l'immagine
    • LOCATION: facoltativo: un flag che ti consente di indicare la regione o le regioni in cui è archiviata l'immagine. Ad esempio: specifica us per archiviare l'immagine in us in più regioni o us-central1 per archiviarli Regione us-central1. Se non effettui una selezione, Compute Engine archivia l'immagine nella località multiregionale più vicina alla posizione di origine dell'immagine.
  3. (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.

  4. 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 VM
    • IMAGE_PROJECT: nome del progetto che contiene l'immagine
    • IMAGE o IMAGE_FAMILY: specificare una delle seguenti opzioni:
      • IMAGE: nome dell'immagine personalizzata

        Ad 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 immagini my-debian-family.

      di Gemini Advanced.
    • 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 progetto
      • REGION è la regione della subnet
      • SUBNET_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