Esporta un'immagine personalizzata in Cloud Storage

Se devi spostare i dati del disco di avvio di Compute Engine all'esterno del tuo progetto Compute Engine, puoi esportare un'immagine disco di avvio in Cloud Storage come file tar.gz. Se devi creare un'immagine disco permanente da utilizzare quando crei nuovi Persistent Disk su Compute Engine, consulta Creazione di un'immagine personalizzata.

Puoi eseguire il backup o condividere un'immagine personalizzata esportandola in Cloud Storage. Questo metodo è ideale per condividere singole immagini con progetti che non hanno accesso alle tue immagini. In alternativa, puoi condividere le immagini concedendo il ruolo Utente immagini Compute Engine sull'immagine o sul progetto che la contiene.

Il seguente diagramma mostra alcuni workflow tipici per la creazione e il riutilizzo di un'immagine personalizzata.

Creazione e riutilizzo di immagini personalizzate.
Figure 1. Esempi di creazione e riutilizzo di immagini personalizzate

Prima di iniziare

  • Leggi la pagina Immagini.
  • Se nel progetto da cui vuoi esportare l'immagine è definita una policy per immagini attendibili, aggiungi projects/compute-image-import all'elenco consentito dei publisher.
  • Per informazioni su come soddisfare i requisiti prima di esportare le immagini, vedi Prerequisiti per l'importazione e l'esportazione di immagini VM.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa al modo in cui prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API Google Cloud , non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Limitazioni e restrizioni

Al processo di esportazione delle immagini si applicano le seguenti limitazioni.

Limitazioni generali

Non puoi esportare le immagini pubbliche fornite da Google. Puoi esportare solo le immagini che hai creato o importato in precedenza.

Quando esporti un'immagine, viene creata una sessione sulla macchina da cui stai esportando l'immagine. Questa sessione deve rimanere attiva fino al completamento del processo di esportazione. Se la sessione termina prima del completamento del processo di esportazione o se il job non va a buon fine, le risorse temporanee come dischi temporanei, istanze VM o bucket di archiviazione potrebbero non essere eliminate. In questo caso, devi eliminare manualmente queste risorse temporanee.

Viene creato un bucket Cloud Storage denominato ${PROJECT}-daisy-bkt-${REGION} per le risorse temporanee create durante il processo di esportazione nella stessa regione o multiregione del bucket di destinazione. Per gestire il ciclo di vita di queste risorse, consulta Gestione del ciclo di vita degli oggetti.

Il processo di esportazione utilizza Cloud Build per esportare un'immagine. Una sessione di Cloud Build dura al massimo 24 ore. Se l'immagine è molto grande e richiede più di 24 ore per essere esportata, puoi esportarla manualmente.

Limitazioni dei Controlli di servizio VPC

Per i progetti protetti con i Controlli di servizio VPC, utilizza uno dei seguenti metodi:

  • Esegui l'esportazione dallo stesso progetto in cui si trova l'immagine. Nota: devi aggiungere una regola in uscita al progetto compute-image-import (numero 71462206840). Per seguire il principio del privilegio minimo, ti consigliamo di consentire solo il servizio artifactregistry.googleapis.com con i seguenti metodi: artifactregistry.repositories.downloadArtifacts, artifactregistry.tags.get, artifactregistry.tags.list e artifactregistry.versions.get.

  • Esporta l'immagine manualmente.

Esporta un'immagine con un solo comando

Esporta un'immagine in Cloud Storage

Puoi esportare le immagini utilizzando la consoleGoogle Cloud , Google Cloud CLI o REST.

Console

  1. Nella console Google Cloud , vai alla pagina Immagini.

    Vai a Immagini

  2. Fai clic sul nome dell'immagine che vuoi esportare per andare alla pagina dei dettagli dell'immagine.

  3. Nella pagina dei dettagli dell'immagine, fai clic su Esporta per aprire la pagina Esporta immagine.

  4. Nella pagina Esporta immagine, scegli il Formato di esportazione dell'immagine.

  5. Scegli la località di Cloud Storage in cui esportare l'immagine facendo clic su Sfoglia.

  6. Scegli una località Cloud Storage esistente in cui esportare l'immagine. In alternativa, segui le istruzioni per creare un nuovo bucket Cloud Storage, quindi inserisci un nome per il nuovo bucket Cloud Storage.

  7. Dopo aver scelto un bucket Cloud Storage, scegli un nome file per l'immagine esportata. Puoi utilizzare il nome file predefinito o sceglierne uno personalizzato.

  8. Dopo aver scelto un bucket Cloud Storage e aver inserito un nome file per l'immagine, fai clic su Seleziona.

  9. Nella pagina Esporta immagine, fai clic su Esporta. Dopo aver scelto Esporta, la console Google Cloud visualizza la Cronologia esportazione immagini, dove puoi visualizzare il processo di esportazione delle immagini. Per ulteriori dettagli sulla procedura di esportazione delle immagini, fai clic sull'ID Cloud Build per andare alla pagina Dettagli esportazione immagine, dove puoi visualizzare e scaricare il log di esportazione delle immagini.

  10. Vai alla pagina Storage per accedere all'immagine esportata.

    Vai ad Archiviazione

gcloud

Il modo preferito per esportare un'immagine in Cloud Storage è utilizzare il comando gcloud compute images export. Questo comando utilizza Daisy per concatenare i vari passaggi necessari per esportare un'immagine.

Il comando gcloud compute images export presuppone che tu abbia già creato un'immagine, ad esempio con il comando gcloud compute images create.

Utilizzando Google Cloud CLI, esegui:

gcloud compute images export \
    --destination-uri DESTINATION_URI \
    --image IMAGE_NAME

Sostituisci quanto segue:

  • DESTINATION_URI: l'URI Cloud Storage di destinazione per il file immagine esportato.
  • IMAGE_NAME: il nome dell'immagine disco da esportare.

Per impostazione predefinita, le immagini vengono esportate nel formato Compute Engine, ovvero un file disk.raw compresso con tar e gzip. Per esportare le immagini in altri formati supportati dall'utilità per immagini disco QEMU, puoi utilizzare il flag --export-format. I formati validi includono vmdk, vhdx, vpc, vdi e qcow2.

Esempio

Ad esempio, il seguente comando esporta un'immagine denominata my-image da my-project in un bucket Cloud Storage denominato my-bucket. Per impostazione predefinita, l'immagine viene esportata come disk.raw file e compressa nel formato file tar.gz.

gcloud compute images export \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --image my-image \
    --project my-project

Per i flag, consulta la documentazione di riferimento di gcloud compute images export.

REST

Invia una richiesta POST all'API Cloud Build.

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-import/gce_vm_image_export:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-daisy",
    "gce-daisy-image-export"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per il progetto che contiene l'immagine che vuoi esportare.
  • SOURCE_IMAGE: il nome dell'immagine da esportare.
  • IMAGE_FORMAT: il formato dell'immagine esportata. I formati validi includono vmdk, vhdx, vpc, vdi e qcow2.
  • DESTINATION_URI: la località dell'URI Cloud Storage in cui vuoi esportare il file immagine. Ad esempio, gs://my-bucket/my-exported-image.vmdk.

Per ulteriori valori args che possono essere forniti, consulta la sezione dei flag facoltativi della pagina GitHub per l'esportazione delle immagini VM.

Esempio di risposta

La seguente risposta di esempio è simile all'output restituito:

{
"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-import/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"
 }
 }

Esistono un paio di modi per monitorare la build:

  • Esegui una richiesta projects.builds.get utilizzando il valore build-id restituito.
  • Esamina i log ospitati nel percorso logUrl fornito.

Esporta un'immagine da un progetto utilizzando un account di servizio Compute Engine personalizzato

Durante l'esportazione di un'immagine, nel progetto viene creata un'istanza di macchina virtuale (VM) temporanea. Lo strumento di esportazione delle immagini presente su questa VM temporanea deve essere autenticato.

Un service account è un'identità associata a una VM. È possibile accedere ai token di accesso del service account tramite il server dei metadati dell'istanza e utilizzarli per autenticare lo strumento di esportazione delle immagini sulla VM.

Per impostazione predefinita, il processo di esportazione utilizza l'agente di servizio Compute Engine predefinito del progetto. Tuttavia, se il account di servizio predefinito di Compute Engine è disattivato nel tuo progetto o se vuoi utilizzare un account di servizio di Compute Engine personalizzato, devi crearne uno e specificarlo per la procedura di esportazione.

Puoi esportare le immagini utilizzando Google Cloud CLI o REST.

gcloud

  1. Crea un service account e assegnagli i ruoli minimi. Per ulteriori informazioni sulla creazione dei service account, vedi Creazione e gestione dei service account.

    Al service account di Compute Engine specificato devono essere assegnati almeno i seguenti ruoli:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin
    • roles/storage.admin

    Per ulteriori informazioni, vedi Concedi i ruoli richiesti al service account di Compute Engine.

  2. Utilizza il comando gcloud compute images export per esportare l'immagine.

    gcloud compute images export \
        --destination-uri DESTINATION_URI \
        --image IMAGE_NAME \
        --compute-service-account SERVICE_ACCOUNT_EMAIL

    Sostituisci quanto segue:

    • DESTINATION_URI: l'URI Cloud Storage di destinazione per il file immagine esportato.
    • IMAGE_NAME: il nome dell'immagine disco da esportare.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email associato al account di servizio Compute Engine creato nel passaggio precedente.

Esempio

Ad esempio, il seguente comando esporta un'immagine denominata my-image da my-project in un bucket Cloud Storage denominato my-bucket con un account di servizio con l'indirizzo email image-export-service-account@proj-12345.. Per impostazione predefinita, l'immagine viene esportata come file disk.raw e compressa nel formato file tar.gz.

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.
    

Per i flag, consulta la documentazione di riferimento di gcloud compute images export.

REST

  1. Crea un service account e assegnagli i ruoli minimi. Per ulteriori informazioni sulla creazione dei service account, vedi Creazione e gestione dei service account.

    Al service account di Compute Engine specificato devono essere assegnati almeno i seguenti ruoli:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin
    • roles/storage.admin

    Per ulteriori informazioni, vedi Concedi i ruoli richiesti al service account di Compute Engine.

  2. Nell'API, crea una richiesta POST all'API Cloud Build.

    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-import/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto per il progetto che contiene l'immagine che vuoi esportare.
    • SOURCE_IMAGE: il nome dell'immagine da esportare.
    • IMAGE_FORMAT: il formato dell'immagine esportata. I formati validi includono vmdk, vhdx, vpc, vdi e qcow2.
    • DESTINATION_URI: la località dell'URI Cloud Storage in cui vuoi esportare il file immagine. Ad esempio, gs://my-bucket/my-exported-image.vmdk.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email associato al account di servizio Compute Engine creato nel passaggio precedente.

Per ulteriori valori args che possono essere forniti, consulta la sezione dei flag facoltativi della pagina GitHub relativa all'esportazione delle immagini VM.

Esporta un'immagine utilizzando un VPC condiviso

Prima di esportare un'immagine che utilizza un VPC condiviso, devi aggiungere il ruolo compute.networkUser al account di servizio Cloud Build nel progetto da cui esporti le immagini. Il account di servizio utilizzato per Cloud Build dipende dal fatto che tu abbia utilizzato Cloud Build nel progetto prima di maggio 2024. In caso affermativo, il account di servizio Cloud Build legacy viene utilizzato per le build future. In caso contrario, viene utilizzato il account di servizio Compute Engine predefinito.

Per ulteriori informazioni, consulta Concedi i ruoli richiesti al service account Cloud Build.

Puoi esportare l'immagine utilizzando Google Cloud CLI o REST.

gcloud

Utilizza il comando gcloud compute images export per esportare l'immagine.

gcloud compute images export \
    --image IMAGE_NAME \
    --destination-uri DESTINATION_URI \
    --project PROJECT_ID \
    --network NETWORK \
    --subnet SUBNET \
    --zone ZONE

Sostituisci quanto segue:

  • IMAGE_NAME: il nome dell'immagine da esportare.
  • DESTINATION_URI: la località dell'URI Cloud Storage in cui vuoi esportare il file immagine.
  • PROJECT_ID: l'ID del progetto in cui si trova l'immagine.
  • NETWORK: il percorso completo di una rete VPC condivisa. Ad esempio projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
  • SUBNET: (Facoltativo) Il percorso completo di una subnet VPC condivisa. Ad esempio projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

    La specifica di questa modalità dipende dalla modalità di rete VPC.

    • Se la rete VPC utilizza la modalità legacy, non specificare una subnet.
    • Se la rete VPC utilizza la modalità automatica, la specifica della subnet è facoltativa.
    • Se la rete VPC utilizza la modalità personalizzata, questo campo deve essere specificato.
  • ZONE: (Facoltativo) La zona da utilizzare per l'esportazione. Questa zona deve corrispondere alla regione della subnet. Ad esempio, se SUBNET si trova nella regione us-west1, la zona di esportazione deve essere una delle seguenti: us-west1-a, us-west1-b o us-west1-c.

    Se hai specificato un SUBNET, devi specificare anche la zona.

Ad esempio, il seguente comando esporta un'immagine denominata example-image da my-project in un bucket Cloud Storage denominato my-bucket. In questo esempio, la rete Virtual Private Cloud (my-shared-vp) utilizza una subnet personalizzata (my-custom-subnet). Per impostazione predefinita, l'immagine viene esportata come file disk.raw e viene compressa nel formato file tar.gz.

Comando di esempio

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
 

REST

  1. Aggiungi l'immagine a Cloud Storage.

  2. Nell'API, crea una richiesta POST all'API Cloud Build.

    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-import/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto per il progetto che contiene l'immagine che vuoi esportare.
    • SOURCE_IMAGE: il nome dell'immagine da esportare.
    • IMAGE_FORMAT: il formato dell'immagine esportata. I formati validi includono vmdk, vhdx, vpc, vdi e qcow2.
    • DESTINATION_URI: la località dell'URI Cloud Storage in cui vuoi esportare il file immagine. Ad esempio, gs://my-bucket/my-exported-image.vmdk.
    • NETWORK: il percorso completo di una rete VPC condivisa. Ad esempio projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
    • SUBNET: il percorso completo di una subnet VPC condivisa. Ad esempio projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

      La specifica di questa modalità dipende dalla modalità di rete VPC.

      • Se la rete VPC utilizza la modalità legacy, non specificare una subnet.
      • Se la rete VPC utilizza la modalità automatica, la specifica della subnet è facoltativa.
      • Se la rete VPC utilizza la modalità personalizzata, questo campo deve essere specificato.
    • ZONE: la zona da utilizzare per l'esportazione. Questa zona deve corrispondere alla regione della subnet. Ad esempio, se SUBNET si trova nella regione us-west1, la zona di esportazione deve essere una delle seguenti: us-west1-a, us-west1-b o us-west1-c.

      Nella maggior parte dei casi, la specifica di una zona è facoltativa. Se viene specificato SUBNET, è necessario specificare la zona.

    Per ulteriori valori args che possono essere forniti, consulta la sezione dei flag facoltativi della pagina GitHub per l'esportazione delle immagini VM.

Crea ed esporta un'immagine manualmente

Se i comandi gcloud compute images create e gcloud compute images export non soddisfano i tuoi requisiti, puoi creare ed esportare un'immagine manualmente da un'istanza Compute Engine. Questo processo prevede passaggi distinti per creare prima un'immagine e poi esportarla.

Nell'esempio seguente, tieni presente che il disco creato si chiama image-disk.

Per creare ed esportare un'immagine:

  1. (Facoltativo) Arresta l'istanza a cui è collegato il disco prima di creare lo snapshot. L'arresto dell'istanza garantisce l'integrità dei contenuti del disco nello snapshot.

  2. Crea uno snapshot del disco. Assegna allo snapshot il nome image-snapshot.

    gcloud compute disks snapshot DISK_NAME \
        --snapshot-names image-snapshot

    Sostituisci DISK_NAME con il nome del disco che vuoi utilizzare per creare lo snapshot. Puoi trovare il nome del disco elencando i dischi.

  3. Utilizza lo snapshot image-snapshot per creare un nuovo disco denominato image-disk eseguendo il seguente comando:

    gcloud compute disks create image-disk \
        --source-snapshot image-snapshot
  4. Crea un disco temporaneo denominato temporary-disk per contenere il file tar e specifica che SIZE del disco deve essere almeno il 50% più grande del disco immagine.

    Puoi scollegare ed eliminare il disco in un secondo momento.

    gcloud compute disks create temporary-disk \
        --size SIZE

    dove SIZE è la dimensione, in gigabyte o terabyte, del disco temporaneo. Ad esempio, specifica 100GB per creare un disco da 100 gigabyte.

  5. Crea un'istanza e attiva l'ambito storage-rw sull'istanza. Inoltre, collega image-disk e temporary-disk all'istanza come dischi secondari con attributi device-name specifici. Sostituisci VM_NAME con il nome dell'istanza da creare.

    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

    Tieni presente che stai passando gli ambiti del account di servizio in modo da poter caricare il file su Cloud Storage nei passaggi successivi.

    Se necessario, consulta i dettagli sull'avvio di una nuova istanza.

  6. Connettiti all'istanza. Sostituisci VM_NAME con il nome dell'istanza a cui connetterti.

    gcloud compute ssh VM_NAME
  7. Formatta e monta il disco temporaneo. La formattazione del disco elimina i contenuti del disco temporaneo.

    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
  8. (Facoltativo) Monta il disco dell'immagine e apporta ulteriori modifiche prima di creare il file tar. Ad esempio, potresti voler eliminare i file esistenti dalla directory /home se non vuoi che facciano parte della tua immagine. Monta le partizioni del disco che devi modificare, modifica i file sul disco che devi cambiare e smonta il disco al termine dell'operazione.

    1. Crea una directory in cui montare il disco o la partizione.

      sudo mkdir /mnt/image-disk
    2. Utilizza il comando ls per determinare il disco o la partizione del disco da montare.

      ls /dev/disk/by-id/

      Il comando stampa un elenco di ID disco e partizioni. Ad esempio, il seguente disco ha una tabella di partizione con una partizione. L'ID google-image-disk rimanda al disco completo da cui vuoi creare un'immagine. L'ID google-image-disk-part1 punta alla prima partizione di questo disco. Monta la partizione se devi apportare modifiche al disco, quindi crea l'immagine dal disco completo.

      google-image-disk
      google-image-disk-part1
      
    3. Monta il disco o la partizione. Se il disco ha una tabella di partizione, monta le singole partizioni per il disco. Ad esempio, monta google-image-disk-part1.

      sudo mount /dev/disk/by-id/google-image-disk-part1 /mnt/image-disk

      In alternativa, se il disco è formattato in formato non elaborato senza tabella di partizione, monta l'intero disco google-image-disk.

      sudo mount /dev/disk/by-id/google-image-disk /mnt/image-disk
    4. Modifica i file nella directory /mnt/image-disk per configurare i file sul disco. Ad esempio, potresti rimuovere il file /mnt/image-disk/home/[USER]/.ssh/authorized_keys per impedire la condivisione delle chiavi SSH.

    5. Al termine della modifica dei file, smonta il disco.

      sudo umount /mnt/image-disk/
  9. Crea un file tar dell'immagine.

    Al termine della personalizzazione dei file sul disco immagine, crea un file del disco non elaborato sul disco temporaneo. Il nome dell'immagine disco non elaborata deve essere "disk.raw":

     sudo dd if=/dev/disk/by-id/google-image-disk of=/mnt/tmp/disk.raw bs=4096

    Poi crea il file tar.gz:

    cd /mnt/tmp

    sudo tar czvf myimage.tar.gz disk.raw

    Questo comando crea un'immagine dell'istanza nella seguente posizione:

    /mnt/tmp/myimage.tar.gz

  10. Carica l'immagine su Cloud Storage.

    Per caricare il file tar su Cloud Storage, utilizza Google Cloud CLI preinstallato nell'istanza.

    1. Crea un bucket utilizzando gcloud CLI.

      Assicurati di consultare le linee guida per la denominazione di bucket e oggetti prima di creare il bucket. Quindi, crea il bucket utilizzando il seguente comando. Sostituisci BUCKET_NAME con il nome del bucket da creare.

      me@example-instance:~$ 
      gcloud storage buckets create gs://BUCKET_NAME
    2. Copia il file nel nuovo bucket. Sostituisci BUCKET_NAME con il nome del bucket in cui copiare il file.

      me@example-instance:~$ 
      gcloud storage cp /mnt/tmp/myimage.tar.gz gs://BUCKET_NAME

Hai esportato il file in Cloud Storage. Ora puoi condividere l'immagine con altre persone o utilizzare il file tar per aggiungere una nuova immagine a un progetto della consoleGoogle Cloud .

Passaggi successivi