Importa immagini macchina da appliance virtuali


Utilizza un'immagine della macchina per archiviare ogni configurazione, metadato, autorizzazione e dato di uno o più dischi per un'istanza VM in esecuzione su Compute Engine. Per informazioni su come e quando utilizzare immagini macchina, consulta Immagini macchina.

Questo documento descrive i passaggi per importare un'immagine macchina da un appliance virtuale.

Prima di iniziare

  • Se nel progetto in cui vuoi importare l'immagine macchina è definito un criterio relativo alle immagini attendibili, aggiungi projects/compute-image-import e projects/compute-image-tools all'elenco consentito dei publisher.
  • Se importi un'appliance virtuale da un altro progetto, consulta Importazione da più progetti.
  • Esamina i requisiti della VM di origine e del file OVF nella guida di Compute Engine sull'importazione di appliance virtuali.
  • Per scoprire come soddisfare i requisiti prima di importare le immagini macchina, consulta Prerequisiti per l'importazione e l'esportazione delle immagini VM.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni e restrizioni

  • Puoi condividere un'immagine macchina tra progetti. Tuttavia, le reti VPC condivise non sono supportate.
  • Questa funzionalità non è supportata per i progetti protetti con Controlli di servizio VPC.
  • Le immagini macchina non possono essere create da VM di origine che hanno più di 200 TB di dischi collegati.

Sistemi operativi supportati

Per assistenza con il sistema operativo, vedi Dettagli del sistema operativo.

Importa immagini macchina

Puoi importare immagini macchina da appliance virtuali utilizzando Google Cloud CLI, oppure REST.

gcloud

Utilizza la Comando gcloud compute machine-images import per importare un'immagine macchina da appliance virtuali.

gcloud compute machine-images import MACHINE_IMAGE_NAME \
    --source-uri=gs:SOURCE_URI \
    --os=OS

Sostituisci quanto segue:

  • MACHINE_IMAGE_NAME: nome della macchina che vuoi importare.
  • SOURCE_URI: percorso del file OVA o OVF su Cloud Storage.
  • OS: sistema operativo del file OVA. Questo è facoltativo per impostazione predefinita, ma in alcuni casi potrebbe essere obbligatorio. Me ti consigliamo di fornire questo flag.

Esempio

Ad esempio, puoi utilizzare questo comando gcloud per importare una macchina immagine denominata my-machine-image da un file OVA di origine denominato my-ova è archiviato nella directory gs://my-bucket ed esegue centos-7:

gcloud compute machine-images import my-machine-image  \
    --source-uri=gs://my-bucket/my-ova/ \
    --os=centos-7

REST

  1. Carica l'appliance virtuale in Cloud Storage.

  2. Invia una richiesta POST all'API Cloud Build.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "timeout": "7200s",
     "steps":[
       {
         "args":[
           "-machine-image-name=MACHINE_IMAGE_NAME",
           "-ovf-gcs-path=SOURCE_URI",
           "-os=OS",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":"gce-ovf-machine-image-import"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui vuoi importare il file OVA.
    • MACHINE_IMAGE_NAME: nome della macchina dell'immagine da importare. Ad esempio, my-machine-image.
    • SOURCE_URI: URI del file OVA o di un contenente pacchetti OVF archiviati in Cloud Storage. Ad esempio, gs://my-bucket/my-instance.ova.
    • OS: sistema operativo del file OVA. Ad esempio, ubuntu-1604. Questo flag è facoltativo per impostazione predefinita, ma potrebbe essere obbligatorio in alcuni casi. Ti consigliamo di fornire questo flag.

    Per altri valori di args che possono essere forniti, consulta la sezione facoltativa della console Pagina GitHub di importazione OVF di Compute Engine.

Importa immagini macchina con override OVF

CPU e memoria personalizzate

gcloud

Per eseguire l'override della configurazione della CPU o della memoria specificata nel file OVF, segui i passaggi di Google Cloud CLI per importare un'immagine macchina e specificare i flag --custom-cpu e --custom-memory.

Esempio

Un'immagine macchina denominata my-machine-image ha i seguenti override applicati alle impostazioni nel file OVF:

  • Sistema operativo: Ubuntu 1404
  • CPU: 2 CPUs
  • Memoria: 2048 MB

Per importare my-machine-image con questi override, esegui questo comando:

gcloud compute machine-images import my-machine-image \
    --os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \
    --custom-cpu=2 --custom-memory=2048MB

REST

Per eseguire l'override della configurazione della CPU o della memoria specificata nel file OVF, seguire i passaggi dell'API Compute Engine importare un'immagine macchina e specifica l'argomento -machine-type. Questo -machine-type rappresenta un tipo di macchina predefinito o personalizzato da utilizzare.

Esempio

Un'immagine macchina denominata my-machine-image ha i seguenti override applicati alle impostazioni nel file OVF:

  • Sistema operativo: Ubuntu 1404
  • CPU: 2 CPUs
  • Memoria: 2048 MB

Per importare my-machine-image con questi override, apporta le seguenti modifiche una richiesta all'API Compute Engine.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-machine-image-name=my-machine-image",
        "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
        "-os=ubuntu-1404",
        "-machine-type=custom-2-2048",
        "-client-id=api",
        "-timeout=7000s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":"gce-ovf-machine-image-import"
}

Sostituisci PROJECT_ID con l'ID progetto.

Reti personalizzate

gcloud

Per configurare una rete personalizzata, segui i passaggi di Google Cloud CLI per importare un'immagine macchina e specifica un flag --network. Se la rete è configurata con una modalità subnet personalizzata, devi specificare anche i flag --subnet e --zone.

Esempio

Un'immagine macchina denominata my-machine-image ha i seguenti override applicati alle impostazioni nel file OVF:

  • Sistema operativo: Ubuntu 1404
  • Rete: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zona: us-east1-c

Per importare my-machine-image con questi override, esegui l'esempio seguente :

gcloud compute machine-images import my-machine-image \
    --os=ubuntu-1404 \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --network=custom-vpc-network \
    --subnet=company-vpc-us-east1-c \
    --zone=us-east1-c

REST

Per usare una rete personalizzata, segui i passaggi dell'API Compute Engine importare un'immagine macchina e specifica un argomento -network. Se la rete è configurata con una modalità di subnet personalizzata, devi specificare anche gli argomenti -subnet e -zone.

Esempio

Un'immagine macchina denominata my-machine-image ha i seguenti override applicati alle impostazioni nel file OVF:

  • Sistema operativo: Ubuntu 1404
  • Rete: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zona: us-central1-c

Per importare my-machine-image con questi override, apporta le seguenti modifiche una richiesta all'API Compute Engine.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-machine-image-name=my-machine-image",
        "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
        "-os=ubuntu-1404",
        "-zone=us-central1-c",
        "-network=custom-vpc-network",
        "-subnet=company-vpc-us-east1-c",
        "-client-id=api",
        "-timeout=7000s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUsILD_ID"
      ]
    }
  ],
  "tags":"gce-ovf-machine-image-import"
}

Sostituisci PROJECT_ID con l'ID progetto.

Importa un'immagine macchina all'interno di una rete che non consente IP esterni

Per importare un'immagine macchina utilizzando una rete che non consente indirizzi IP esterni: di lavoro, completa i seguenti passaggi:

  1. Aggiungi l'appliance virtuale a Cloud Storage.

  2. Il processo di importazione richiede l'installazione dei gestori di pacchetti sul per l'immagine della macchina. Questi gestori dei pacchetti potrebbero dover effettuare richieste a repository di pacchetti esterni a Google Cloud. Per consentire l'accesso a questi aggiornamenti, devi configurare Cloud NAT. Per ulteriori informazioni, vedi Crea una configurazione NAT utilizzando il router Cloud.

  3. Configura Accesso privato Google. Per ulteriori informazioni, consulta Configurare l'accesso privato Google.

  4. Importa l'immagine della macchina utilizzando Google Cloud CLI o l'API Cloud Build.

    Quando importi un'immagine macchina da un appliance virtuale, nel progetto vengono create VM temporanee. Per assicurarti che a queste VM temporanee non vengano assegnati indirizzi IP esterni, devi specificare un flag o un argomento aggiuntivo.

    Per ulteriori informazioni sul flag o sull'argomento richiesto, fai clic seguenti schede:

gcloud

Utilizza la Comando gcloud compute machine-images import con il flag --no-address .

gcloud compute machine-images import MACHINE_IMAGE_NAME \
    --source-uri=SOURCE_URI \
    --os=OS \
    --zone=ZONE \
    --no-address

Sostituisci quanto segue:

  • MACHINE_IMAGE_NAME: nome della macchina che vuoi importare.
  • SOURCE_URI: URI per il tuo file OVA o OVF su Cloud Storage. Ad esempio: gs://my-bucket/Ubuntu.ova.
  • OS: sistema operativo del file OVA. Questo indicatore è facoltativo per impostazione predefinita, ma potrebbe essere necessario in alcuni casi. Me ti consigliamo di fornire questo flag. Per un elenco dei valori supportati, consulta le opzioni del flag --os per il comando gcloud compute machine-images import.
  • ZONE: il zona in cui importare dell'immagine macchina. Se non viene specificato, viene utilizzata la zona predefinita per il progetto.

REST

Utilizza la API Cloud Build e specifica l'argomento -no-external-ip.

 POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
 {
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-machine-image-name=MACHINE_IMAGE_NAME",
        "-ovf-gcs-path=SOURCE_URI",
        "-os=OS",
        "-zone=ZONE",
        "-no-external-ip",
        "-client-id=api",
        "-timeout=7000s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":"gce-ovf-machine-image-import"
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che in cui vuoi importare l'immagine macchina.
  • MACHINE_IMAGE_NAME: il nome della macchina dell'immagine da importare. Ad esempio, my-machine-image.
  • SOURCE_URI: l'URI del file OVA in Cloud Storage. Ad esempio, gs://my-bucket/my-machine.ova.
  • OS: il sistema operativo del file OVA. Ad esempio, ubuntu-1604. Questo flag è facoltativo per impostazione predefinita, ma potrebbe in alcuni casi. Ti consigliamo di fornire questo flag. Per un elenco dei valori supportati, consulta le opzioni del flag --os per il comando gcloud compute instances import.
  • ZONE: la zona in cui importare l'immagine della macchina.

Importa un'immagine macchina utilizzando account di servizio personalizzati

Durante l'importazione di un'immagine macchina, le istanze di macchine virtuali temporanee (VM) vengono create del progetto. Lo strumento di importazione su queste VM temporanee deve essere autenticato.

Un account di servizio è un'identità associata a una VM. È possibile accedere ai token di accesso all'account di servizio I metadati della VM e utilizzato per autenticare lo strumento di importazione sulla VM.

Per impostazione predefinita, il processo di importazione utilizza account di servizio Compute Engine predefinito. Tuttavia, se l'account di servizio Compute Engine predefinito è disabilitato in nel tuo progetto o se vuoi usare un account di servizio Compute Engine personalizzato, devi creare un account di servizio e specificarlo per il processo di importazione.

gcloud

  1. Aggiungi l'appliance virtuale a Cloud Storage.

  2. Crea un account di servizio e assegna i ruoli minimi. Per ulteriori informazioni sulla creazione degli account di servizio, consulta Creare e gestire gli account di servizio.

    Come minimo, l'account di servizio Compute Engine specificato deve avere seguenti ruoli assegnati:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Questi ruoli minimi sono necessari per l'account di servizio specificato per --compute-service-account flag. Per ulteriori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.

  3. Utilizza il comando gcloud compute machine-images import per importare un'immagine macchina da appliance virtuali.

    gcloud compute machine-images import MACHINE_IMAGE_NAME \
        --source-uri=gs:SOURCE_URI \
        --os=OS \
        --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \
        --service-account=SERVICE_ACCOUNT_EMAIL \
        --scopes=SCOPES
    

    Sostituisci quanto segue:

    • MACHINE_IMAGE_NAME: nome della macchina che vuoi importare.
    • SOURCE_URI: percorso del file OVA o OVF su Cloud Storage.
    • OS: sistema operativo del file OVA. Questo indicatore è facoltativo per impostazione predefinita, ma potrebbe essere necessario in alcuni casi. Me ti consigliamo di fornire questo flag.
    • TEMP_SERVICE_ACCOUNT_EMAIL: l'email associato al servizio personalizzato creato nel passaggio precedente. Questo account di servizio viene utilizzato dalle VM temporanee. Se non specificata, la VM utilizza Compute Engine predefinito l'account di servizio.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email associato all'account di servizio personalizzato da collegare a qualsiasi VM creata da questa immagine macchina. Non ci sono limitazioni di autorizzazione per questo account di servizio, puoi personalizzarlo in base alle tue esigenze. Se non specificato, l'account di servizio Compute Engine predefinito è collegato alla VM.
    • SCOPES: specifica il livello di accesso per Opzione --service-account. Se non specificati, vengono utilizzati gli ambiti predefiniti. Per ulteriori informazioni, consulta il flag --scopes.

REST

  1. Aggiungi l'appliance virtuale a Cloud Storage.

  2. Crea un account di servizio e assegna i ruoli minimi. Per ulteriori informazioni sulla creazione degli account di servizio, consulta Creare e gestire gli account di servizio.

    All'account di servizio Compute Engine specificato devono essere assegnati almeno i seguenti ruoli:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Questi ruoli minimi sono necessari per l'account di servizio specificato per -compute-service-account argomento. Per ulteriori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.

  3. Invia una richiesta POST all'API Cloud Build.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
    "timeout":"7200s",
    "steps":[
      {
        "args":[
          "-machine-image-name=MACHINE_IMAGE_NAME",
          "-ovf-gcs-path=SOURCE_URI",
          "-os=OS",
          "-zone=ZONE",
          "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL",
          "-service-account=SERVICE_ACCOUNT_EMAIL",
          "-client-id=api",
          "-timeout=7000s"
        ],
        "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
        "env":[
          "BUILD_ID=$BUILD_ID"
        ]
      }
    ],
    "tags":"gce-ovf-machine-image-import"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che in cui vuoi importare l'immagine macchina.
    • MACHINE_IMAGE_NAME: il nome della macchina dell'immagine da importare. Ad esempio, my-machine-image.
    • SOURCE_URI: l'URI del file OVA in Cloud Storage. Ad esempio, gs://my-bucket/my-machine.ova.
    • OS: il sistema operativo del file OVA. Ad esempio, ubuntu-1604. Questo flag è facoltativo per impostazione predefinita, ma potrebbe essere obbligatorio in alcuni casi. Ti consigliamo di fornire questo flag. Per un elenco dei valori supportati, consulta le opzioni del flag --os per il comando gcloud compute instances import.
    • ZONE: la zona in cui importare l'immagine della macchina.
    • TEMP_SERVICE_ACCOUNT_EMAIL: l'email associato al servizio personalizzato creato nel passaggio precedente. Questo account di servizio viene utilizzato dalle VM temporanee. Se non specificato, la VM utilizza l'account di servizio Compute Engine predefinito.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email associato all'account di servizio personalizzato da collegare a qualsiasi VM creata da questa immagine macchina. Non ci sono limitazioni di autorizzazione per questo account di servizio, puoi personalizzarlo in base alle tue esigenze. Se non specificato, l'account di servizio Compute Engine predefinito è collegato alla VM.
    • SCOPES: specifica il livello di accesso per Opzione --service-account. Se non specificato, vengono utilizzati gli ambiti predefiniti. Per ulteriori informazioni, consulta il flag --scopes.

Passaggi successivi