Importa immagini macchina da appliance virtuali


Utilizza un'immagine macchina per archiviare tutti configurazione, metadati, autorizzazioni e dati da uno o più dischi per una VM su Compute Engine. Per informazioni su come e quando utilizzare immagini macchina, consulta Immagini macchina.

Questo documento descrive la procedura per importare un'immagine macchina da un appliance virtuale.

Prima di iniziare

  • Se il progetto in cui vuoi importare l'immagine della macchina ha un norme relative alle immagini attendibili definita, aggiungi projects/compute-image-import e projects/compute-image-tools all'elenco di quelli autorizzati di publisher.
  • Se importi un'appliance virtuale da un progetto diverso, consulta Importazione da più progetti.
  • Rivedi requisiti dei file OVF e VM di origine nella guida all'importazione delle appliance virtuali in Compute Engine.
  • Per scoprire come soddisfare i requisiti prima di importare le immagini macchina, vedi Prerequisiti per l'importazione e l'esportazione di una VM immagini.
  • Se non l'hai ancora fatto, configura l'autenticazione. Autenticazione è Il processo 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.

    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 di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci 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, 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 o 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 il seguente comando gcloud per importare un'immagine macchina denominata my-machine-image da un file OVA di origine denominato my-ova che è memorizzato 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 su Cloud Storage.

  2. Invia una richiesta POST a 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: ID del progetto che 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 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 modello predefinito o macchina personalizzata tipo 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 dell'interfaccia a riga di comando di Google Cloud CLI importare un'immagine macchina e specificare 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à subnet personalizzata, devi anche specificare 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 l'accesso privato Google. Per ulteriori informazioni, vedi Configurazione dell'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, le VM temporanee creato nel progetto. Per assicurarti che queste VM temporanee non vengano assegnate 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 di il tuo file OVA o OVF su Cloud Storage. Ad esempio: gs://my-bucket/Ubuntu.ova.
  • 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. Per un elenco dei valori supportati, vedi Opzioni per --os flag per il comando gcloud compute machine-images import.
  • ZONE: il zona in cui importare dell'immagine macchina. Se viene lasciato vuoto, 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 dell'immagine della macchina 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, vedi Opzioni per --os flag per il comando gcloud compute instances import.
  • ZONE: il zona in cui importare dell'immagine 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à è collegato 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. Creare un account di servizio e assegnare 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, vedi Concessione ruoli richiesti all'account di servizio Compute Engine.

  3. 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 \
        --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 è facoltativo per impostazione predefinita, ma in alcuni casi potrebbe essere obbligatorio. 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'email indirizzo 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 Flag --scopes.

REST

  1. Aggiungi l'appliance virtuale a Cloud Storage.

  2. Creare un account di servizio e assegnare i ruoli minimi. Per ulteriori informazioni sulla creazione di account di servizio, consulta Creazione e gestione degli 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 argomento. Per ulteriori informazioni, vedi Concessione ruoli richiesti all'account di servizio Compute Engine.

  3. Invia una richiesta POST a 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 dell'immagine della macchina 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, vedi Opzioni per --os flag per il comando gcloud compute instances import.
    • ZONE: il zona in cui importare dell'immagine 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 specificata, la VM utilizza Compute Engine predefinito l'account di servizio.
    • SERVICE_ACCOUNT_EMAIL: l'email indirizzo 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.

Passaggi successivi