Copia VM tra progetti

Questo documento spiega come copiare la VM in un altro progetto.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per copiare le VM tra progetti, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) sul progetto. Per saperne di più sulla concessione dei ruoli, vedi Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per copiare le VM tra i progetti. Per vedere quali sono esattamente le autorizzazioni necessarie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per copiare le VM tra progetti sono necessarie le seguenti autorizzazioni:

  • compute.instances.create sul 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 template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
  • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
  • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp sul progetto
  • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
  • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul 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 service account che la VM possa utilizzare: compute.instances.setServiceAccount sulla VM
  • Per creare un nuovo disco per la VM: compute.disks.create sul progetto
  • Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura: compute.disks.use sul disco
  • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o 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 dei seguenti comandi:

    Disco di avvio a livello di zona

    Se la VM ha un disco di avvio a livello di zona, crea uno snapshot utilizzando il seguente comando:

    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 creare uno snapshot.
    • SNAPSHOT_TYPE: il tipo di snapshot, che può essere STANDARD o ARCHIVIO. Se non viene specificato un tipo, viene creato uno snapshot STANDARD. Scegli Archivio per una conservazione dei dati più economica.
    • SOURCE_DISK_ZONE: la zona del volume del Persistent Disk a livello di zona da cui vuoi creare uno snapshot.

    Disco di avvio a livello di regione

    Se la VM ha un disco di avvio a livello di regione, crea uno snapshot utilizzando il 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 a livello di regione da cui vuoi creare uno snapshot.
    • SOURCE_DISK_REGION: la regione del volume del Persistent Disk a livello di regione da cui vuoi creare uno snapshot.
    • SNAPSHOT_TYPE: il tipo di snapshot, che può essere STANDARD o ARCHIVIO. Se non viene specificato un tipo, viene creato uno snapshot STANDARD.

  2. Crea un'immagine personalizzata dallo snapshot utilizzando il seguente comando:

    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: lo snapshot da cui vuoi creare l'immagine.
    • (Facoltativo) LOCATION: un flag che consente di designare la regione o la multi-regione in cui è archiviata l'immagine. Ad esempio, specifica us per archiviare l'immagine nella multi-regione us oppure us-central1 per archiviarla nella regione us-central1. Se non effettui una selezione, Compute Engine archivia l'immagine nella multi-regione più vicina alla località di origine dell'immagine.
  3. (Facoltativo) Condividi l'immagine personalizzata con gli utenti che creano VM nel progetto di destinazione. Per saperne di più 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 il seguente comando:

    gcloud compute instances create VM_NAME \
        --image-project IMAGE_PROJECT \
        IMAGE_FLAG \
        --subnet SUBNET
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.
    • IMAGE_PROJECT: l'ID del progetto Trusted Cloud che contiene l'immagine.
    • IMAGE_FLAG: specifica una delle seguenti opzioni:
      • Utilizza il flag --image IMAGE_NAME per specificare un'immagine personalizzata.

        Ad esempio, --image my-debian-image-v2.

      • Se hai creato le immagini personalizzate all'interno di una famiglia di immagini personalizzate, utilizza il flag --image-family IMAGE_FAMILY_NAME per specificare la famiglia di immagini personalizzate.

        In questo modo la VM viene creata dall'immagine e dalla versione del sistema operativo più recenti e non deprecate nella famiglia di immagini personalizzate. Ad esempio, se specifichi --image-family my-debian-family, Compute Engine crea una VM dall'immagine sistema operativo più recente nella famiglia di immagini personalizzate my-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 dell'istanza.

      Per specificare una subnet in una rete VPC condivisa, sostituisci SUBNET con una stringa nel seguente formato:

              projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
             

      Sostituisci quanto segue:

      • HOST_PROJECT_ID: l'ID progetto del progetto host VPC condiviso.
      • REGION: la regione della subnet.
      • SUBNET_NAME: il nome della subnet.

      Anche la regione della subnet per una rete VPC condivisa deve corrispondere alla regione contenente l'istanza.

Passaggi successivi

  • Personalizza la rete VPC del progetto di destinazione.