Un'appliance virtuale è un pacchetto che contiene le immagini disco e la configurazione hardware per un'istanza di macchina virtuale (VM).
Un formato ampiamente usato e popolare per le appliance virtuali è il
formato OVF.
Quando pacchettizzi appliance virtuali nel formato OVF, generi un pacchetto OVF. Un pacchetto OVF è una cartella che contiene un file descrittore .ovf
e una raccolta di altre risorse, come i dischi. Quando un pacchetto OVF viene archiviato
in un unico file, si parla di file OVA.
Puoi importare in Compute Engine le VM in formato OVF, sia che si trovino in un pacchetto OVF sia in un singolo file OVA. Per verificare se l'utilizzo di un'appliance virtuale è la scelta migliore per il tuo caso d'uso, consulta Scegliere un percorso di migrazione.
Quando importi un'appliance virtuale, il processo di importazione utilizza le informazioni memorizzate nel file descrittore per creare e avviare una VM su Compute Engine.
In Compute Engine, puoi importare i file OVA o OVF nel seguente modo:
- Importa appliance virtuali come istanza. Consulta Importare un file OVA e Importare un file OVF.
- Importa appliance virtuali come immagine macchina. Consulta Importazione di un'immagine macchina da un'appliance virtuale.
Prima di iniziare
- Se per il progetto in cui vuoi importare l'appliance virtuale è stato definito un
criterio per le immagini attendibili,
aggiungi
projects/compute-image-import
eprojects/compute-image-tools
all'elenco di publisher autorizzati. - Se importi un'appliance virtuale da un altro progetto, consulta Importazione tra progetti.
- Per scoprire come soddisfare i requisiti prima di importare le immagini, consulta la pagina Prerequisiti per l'importazione e l'esportazione delle immagini VM.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
- I dischi virtuali devono essere in formato VMDK o VHD.
I dischi virtuali non devono essere criptati.
Per verificare che la tua VM soddisfi i requisiti, puoi eseguire lo strumento di precontrollo.
- Per tutti i sistemi operativi Windows, deve essere installato PowerShell 3 o versioni successive. Le versioni di PowerShell precedenti alla 3.0 possono causare problemi con gli script di avvio e arresto utilizzati durante il processo di importazione.
Per tutte le distribuzioni Linux, il disco di avvio deve soddisfare i seguenti requisiti:
- Sul disco di avvio deve essere installato GRUB.
- Il disco di avvio non deve comprendere più dischi fisici. Un disco partizionato utilizzando un gestore dei volumi logici (LVM) non è supportato. Se il disco occupa più dischi fisici, la VM creata dal file OVF potrebbe non avviarsi in Compute Engine.
- I file OVF devono fornire la portabilità di
Level 1
, come descritto nel documento sulla specifica OVF. Puoi importare le appliance virtuali che soddisfano la portabilità diLevel 2
, ma durante il processo di importazione vengono ignorate eventuali estensioni personalizzate, come i dettagli specifici dell'hypervisor di origine. - Il file OVF deve contenere una sola VM. Se è presente più di una VM, viene importata solo la prima.
- Il primo disco nel file OVF deve essere avviabile.
- Dischi virtuali. Informazioni recuperate dall'elemento
DiskSection
del pacchetto OVF. CPU e memoria. Dati recuperati da
ResourceAllocationSection
del pacchetto OVF.Se le configurazioni di CPU o memoria non rientrano nei limiti dell'intervallo supportato in Compute Engine, il processo di importazione imposta i valori sul valore massimo supportato da Compute Engine.
Disco di avvio. Dettagli recuperati dall'elemento
BootDeviceSection
del pacchetto OVF.Sistema operativo guest. Dettagli recuperati dall'elemento
OperatingSystemSection
del pacchetto OVF.Le informazioni sul sistema operativo guest vengono utilizzate per installare i driver e i pacchetti di ambiente guest corretti nell'istanza importata. Se le informazioni del sistema operativo guest trovate in OVF non sono corrette, l'importazione non va a buon fine. Puoi utilizzare il flag
--os
per eseguire l'override delle informazioni sul sistema operativo guest.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- Progetto di origine: il progetto in cui è archiviato il file OVA o OVF.
- Progetto di destinazione: il progetto in cui vuoi creare l'immagine della VM o della macchina.
- Nel progetto di origine, individua il bucket Cloud Storage.
Nel bucket Cloud Storage, concedi
roles/storage.objectViewer
ai seguenti account di servizio:- Account di servizio Cloud Build per il progetto di destinazione: questo
account di servizio ha il formato
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
- Account di servizio Compute Engine per il progetto di destinazione: questo
account di servizio ha il formato
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sostituisci
DESTINATION_PROJECT_NUMBER
con il numero del progetto per il progetto di destinazione.Per istruzioni su come concedere l'accesso a un bucket Cloud Storage, consulta Aggiunta di un'entità a un criterio a livello di bucket.
- Account di servizio Cloud Build per il progetto di destinazione: questo
account di servizio ha il formato
Importa l'appliance virtuale o l'immagine macchina.
- Carica l'appliance virtuale in Cloud Storage.
Per importare un file OVA da Cloud Storage in Compute Engine, utilizza il comando
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza che vuoi crearePATH_TO_OVA_FILE
: percorso del file OVA in Cloud Storage
Esempi
Ad esempio, per importare un file OVA
Ubuntu.ova
e creare un'istanza denominatamy-instance
, esegui questo comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
Se le informazioni sul sistema operativo guest nel file descrittore OVF non sono corrette o se vuoi sostituire il sistema operativo rilevato, puoi specificare il sistema operativo aggiungendo il flag
--os
. Per un elenco dei valori supportati, esamina le opzioni del flag--os
per il comandogcloud compute instances import
.Ad esempio, per importare un file OVA
Ubuntu.ova
e creare un'istanza denominatamy-instance
che esegue Ubuntu 16.04, esegui questo comando:gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
Carica l'appliance virtuale in Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare il file OVA.VM_NAME
: il nome dell'istanza di macchina virtuale da creare. Ad esempio,my-instance
.SOURCE_URI
: l'URI del file OVA archiviato in Cloud Storage. Ad esempio,gs://my-bucket/my-instance.ova
.ZONE
: la zona in cui creare l'istanza VM. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.
Per ulteriori valori
args
che è possibile fornire, consulta la sezione dei flag facoltativi della pagina GitHub di importazione OVF di Compute Engine.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-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ova", "-zone=asia-northeast2", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
Per monitorare la build, puoi utilizzare uno dei seguenti metodi:
- Esegui una richiesta projects.builds.get utilizzando il valore
build-id
restituito. - Esamina i log ospitati nel
logUrl
fornito.
- Carica l'appliance virtuale in Cloud Storage.
Per importare un file OVF da Cloud Storage a Compute Engine, utilizza il comando
gcloud compute instances import
.Se la directory contiene un solo file OVF, puoi fornire il percorso del file descrittore o il percorso della directory che contiene il file OVF.
Per importare un file OVF utilizzando il percorso del file descrittore, esegui questo comando:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
Per importare un file OVF utilizzando il percorso della directory, esegui questo comando:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza da crearePATH_TO_OVF_FILE
: il percorso del file OVF in Cloud StoragePATH_TO_OVF_DIRECTORY
: il percorso della directory che contiene il file OVF su Cloud Storage
Esempi
Per importare un file OVF
Ubuntu.ovf
dalla directorymy-ovf-directory
che crea un'istanza denominatamy-instance
, esegui questo comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Per importare un file OVF dalla directory
my-ovf-directory
che crea un'istanza denominatamy-instance
, esegui questo comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
Se le informazioni sul sistema operativo guest nel file descrittore OVF non sono corrette o se vuoi sostituire il sistema operativo rilevato, puoi specificare il sistema operativo aggiungendo il flag
--os
. Per un elenco dei valori supportati, esamina le opzioni del flag--os
per il comandogcloud compute instances import
. Ad esempio, per importare un file OVFUbuntu.ovf
e creare un'istanza denominatamy-instance
che esegue Ubuntu 16.04, esegui questo comando:gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Aggiungi l'appliance virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare il file OVA.VM_NAME
: il nome dell'istanza di macchina virtuale da creare. Ad esempio,my-instance
.SOURCE_URI
: l'URI del file OVF archiviato in Cloud Storage. Ad esempio,gs://my-bucket/my-instance.ovf
.OS
: il sistema operativo del file OVF. Ad esempio,ubuntu-1604
. Il flag--os
è facoltativo per impostazione predefinita, ma puoi eseguire l'override del sistema operativo rilevato utilizzando questo flag. Per un elenco dei valori supportati, esamina le opzioni del flag--os
per il comandogcloud compute instances import
.ZONE
: la zona in cui creare l'istanza VM. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.
Per ulteriori valori
args
che è possibile fornire, consulta la sezione dei flag facoltativi della pagina GitHub di importazione OVF di Compute Engine.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-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ovf", "-os=ubuntu-1404", "-zone=asia-south1", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
Puoi monitorare la build in due modi:
- Esegui una richiesta projects.builds.get utilizzando il valore
build-id
restituito. - Esamina i log ospitati nel
logUrl
fornito.
- Nome VM:
my-instance
- Rete:
custom-vpc-network
- Subnet:
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nome VM:
my-instance-2
- Rete:
my-shared-vpc
- Subnet:
my-shared-subnet
- Zona:
us-east1-c
Aggiungi il ruolo
compute.networkUser
all'account di servizio Cloud Build. Per ulteriori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Cloud Build.Importare la VM.
gcloud compute instances import my-instance-2 \ --source-uri gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/my-shared-vpc \ --subnet projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet --zone us-east1-c
Sostituisci quanto segue:
SERVICE_PROJECT_ID
: ID del progetto in cui vuoi importare l'appliance virtualeHOST_PROJECT_ID
: ID del progetto in cui si trova il VPC condiviso
- Nome VM:
my-instance
- Rete:
custom-vpc-network
- Subnet:
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nome VM:
my-instance-2
- Rete:
my-shared-vpc
- Subnet:
my-shared-subnet
- Zona:
us-east1-c
Aggiungi il ruolo
compute.networkUser
all'account di servizio Cloud Build. Per ulteriori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Cloud Build.Crea la seguente richiesta
POST
per importare la VM.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance-2", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=projects/HOST_PROJECT_ID/global/networks/my-shared-vpc", "-subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
SERVICE_PROJECT_ID
: ID del progetto in cui vuoi importare l'appliance virtuale.HOST_PROJECT_ID
: ID del progetto in cui si trova il VPC condiviso.
Aggiungi l'appliance virtuale a Cloud Storage.
Il processo di importazione richiede l'installazione di gestori di pacchetti sul sistema operativo per la VM. Questi gestori di pacchetti potrebbero dover effettuare richieste ai repository di pacchetti esterni a Google Cloud. Per consentire l'accesso a questi aggiornamenti, devi configurare Cloud NAT. Per ulteriori informazioni, consulta Creare una configurazione NAT utilizzando il router Cloud.
Configura l'accesso privato Google. Per istruzioni dettagliate, consulta Configurazione dell'accesso privato Google.
Importa la VM utilizzando Google Cloud CLI o REST.
Quando la VM viene creata da un'appliance virtuale, nel progetto vengono create delle VM temporanee. Per assicurarti che a queste VM temporanee non siano assegnati indirizzi IP esterni, devi specificare un flag o un argomento aggiuntivo.
Per ulteriori informazioni, fai clic sulle seguenti schede:
VM_NAME
: il nome dell'istanza che vuoi creare.SOURCE_URI
: URI per il file OVA o OVF in Cloud Storage. Ad esempio,gs://my-bucket/Ubuntu.ova
.ZONE
: la zona in cui creare l'appliance virtuale. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.PROJECT_ID
: ID del progetto in cui vuoi importare l'immagine.VM_NAME
: nome della VM da creare.SOURCE_FILE
: URI dell'immagine in Cloud Storage. Ad esempio,gs://my-bucket/Ubuntu.ova
.ZONE
: la zona in cui creare l'immagine. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.VM_NAME
: il nome della VM che vuoi creare.SOURCE_URI
: URI per il file OVA o OVF in Cloud Storage. Ad esempio,gs://my-bucket/Ubuntu.ova
.Carica l'appliance virtuale in Cloud Storage.
Nell'API, crea una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-uefi-compatible", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare il file OVA.VM_NAME
: il nome dell'istanza di macchina virtuale da creare. Ad esempio,my-instance
.SOURCE_URI
: l'URI del file OVA archiviato in Cloud Storage. Ad esempio,gs://my-bucket/my-instance.ova
.ZONE
: la zona in cui creare l'istanza VM. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.
Aggiungi l'appliance virtuale a Cloud Storage.
Crea un account di servizio e assegna i ruoli minimi. Per saperne di più sulla creazione di account di servizio, consulta Creazione e gestione degli account di servizio.
All'account di servizio Compute Engine specificato devono essere assegnati almeno i ruoli seguenti:
roles/compute.storageAdmin
roles/storage.objectViewer
Questi ruoli minimi sono necessari per l'account di servizio specificato per il flag
--compute-service-account
. Per maggiori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.Utilizza il comando
gcloud compute instances import
per importare l'appliance virtuale.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza che vuoi creare.SOURCE_URI
: URI per il file OVA o OVF in Cloud Storage. Ad esempio,gs://my-bucket/Ubuntu.ova
.ZONE
: la zona in cui creare l'appliance virtuale. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.TEMP_SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio personalizzato creato nel passaggio precedente. Questo account di servizio è utilizzato dalle VM temporanee. Se non specificati, la VM utilizza l'account di servizio Compute Engine predefinito.SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio personalizzato da collegare alla VM creata dal processo di importazione. Non esistono limitazioni di autorizzazione per questo account di servizio. Puoi personalizzarlo in base alle esigenze. Se non specificato, l'account di servizio Compute Engine predefinito è collegato alla VM.SCOPES
: specifica il livello di accesso per l'opzione--service-account
. Se non specificati, vengono utilizzati gli ambiti predefiniti. Per maggiori informazioni, esamina il flag--scopes
.
Aggiungi l'appliance virtuale a Cloud Storage.
Crea un account di servizio e assegna i ruoli minimi. Per saperne di più sulla creazione di account di servizio, consulta Creazione e gestione degli account di servizio.
All'account di servizio Compute Engine specificato devono essere assegnati almeno i ruoli seguenti:
roles/compute.storageAdmin
roles/storage.objectViewer
Questi ruoli minimi sono necessari per l'account di servizio specificato per l'argomento
-compute-service-account
. Per maggiori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.Nell'API, crea una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-zone=ZONE", "-scopes=SCOPES", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: ID del progetto in cui vuoi importare l'immagine.VM_NAME
: nome della VM da creare.SOURCE_FILE
: URI dell'immagine in Cloud Storage. Ad esempio,gs://my-bucket/Ubuntu.ova
.ZONE
: la zona in cui creare l'immagine. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.TEMP_SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio personalizzato creato nel passaggio precedente. Questo account di servizio è utilizzato dalle VM temporanee. Se non specificati, la VM utilizza l'account di servizio Compute Engine predefinito.SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio personalizzato da collegare alla VM creata dal processo di importazione. Non esistono limitazioni di autorizzazione per questo account di servizio. Puoi personalizzarlo in base alle esigenze. Se non specificato, l'account di servizio Compute Engine predefinito è collegato alla VM.SCOPES
: specifica il livello di accesso per l'opzione-service-account
. Se non specificati, vengono utilizzati gli ambiti predefiniti. Per maggiori informazioni, esamina il flag--scopes
.
- Scopri di più sui nodi single-tenant.
- Scopri di più su BYOL.
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 initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Requisiti
Questa sezione elenca i requisiti per l'importazione di appliance virtuali in Compute Engine.
Requisiti della VM di origine
La VM utilizzata per creare il file OVF deve soddisfare i seguenti requisiti:
Il sistema operativo per la VM di origine deve soddisfare i seguenti requisiti:
Requisiti del file OVF
Il file OVF deve soddisfare i seguenti requisiti:
Autorizzazioni
Per un'esperienza fluida durante l'importazione delle immagini, assicurati di aver concesso i ruoli IAM richiesti al tuo account, all'account di servizio Cloud Build e all'account di servizio Compute Engine. Per ulteriori informazioni, consulta Concedere i ruoli IAM richiesti.
Configurazioni importate dallo strumento di importazione
Lo standard OVF specifica il processo per l'imballaggio di appliance virtuali in modo da non dipendere dal fornitore di virtualizzazione. I pacchetti di appliance virtuali OVF contengono un file descrittore
.ovf
e una raccolta di altre risorse come i dischi virtuali.Quando importi un'appliance virtuale OVF in Compute Engine, vengono elaborate e importate le seguenti configurazioni del file descrittore:
Le VM importate vengono sempre create con una singola scheda di rete con un indirizzo IP esterno. Questo singolo adattatore di rete viene utilizzato indipendentemente dalle configurazioni di rete specificate nel file OVF. Per importare una VM senza indirizzo IP esterno, consulta Importazione di una VM senza indirizzo IP esterno.
Quando importi un'appliance virtuale, le seguenti sezioni del file descrittore vengono ignorate (non importate):
Limitazioni
Questa funzionalità non è supportata per i progetti protetti con Controlli di servizio VPC.
Sistemi operativi supportati
Facoltativamente, puoi specificare il sistema operativo nell'elemento
OperatingSystemSection
del file descrittore o specificare il flag--os
quando importi l'appliance virtuale utilizzando il comandogcloud compute instances import
.Per informazioni sui sistemi operativi supportati, consulta Dettagli sul sistema operativo.
Supporto per BYOL e BYOS
Per impostazione predefinita, i file OVF che utilizzano i sistemi operativi Windows Server e Red Hat Enterprise Linux (RHEL) vengono importati e configurati per l'utilizzo della fatturazione on demand del sistema operativo premium, che comporta costi aggiuntivi.
Se preferisci utilizzare una licenza software o un abbonamento, puoi importare le appliance virtuali con le relative licenze. Per informazioni sui sistemi operativi che supportano BYOL o BYOS, consulta Dettagli del sistema operativo.
Puoi importare le appliance come appliance con licenza BYOL utilizzando il comando
gcloud compute instances import
con il flag--byol
. Se specifichi manualmente il sistema operativo, utilizza il flag--os
per specificare un valore contenente il suffissobyol
per il sistema operativo guest che vuoi importare. Ad esempio,--os=rhel-8-byol
importa un'immagine RHEL 8 con una licenza esistente.Importa tra progetti
Se il progetto di origine e quello di destinazione sono diversi, gli account di servizio nel progetto di destinazione devono accedere al bucket Cloud Storage nel progetto di origine.
Per eseguire l'importazione tra progetti, completa i seguenti passaggi:
Importa appliance virtuali
Puoi importare l'appliance virtuale utilizzando Google Cloud CLI o REST.
Importa un file OVA
gcloud
REST
Importa un file OVF
gcloud
REST
Importazione con impostazioni personalizzate
CPU e memoria personalizzate
gcloud
Per eseguire l'override della configurazione della CPU o della memoria specificata nel file OVF, segui i passaggi dell'interfaccia a Google Cloud CLI per importare un file OVA o importare un file OVF e specificare i flag
--custom-cpu
e--custom-memory
.Esempio
Ad esempio, per importare un'istanza denominata
my-instance
che ha 2 CPU e 2048 MB di memoria, esegui questo comando:gcloud compute instances import my-instance \ --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, segui i passaggi dell'API Cloud Build per importare un OVA o importare un file OVF e specificare l'argomento
-machine-type
. Questo-machine-type
rappresenta un tipo di macchina predefinita o personalizzata da utilizzare.Esempio
Ad esempio, per importare un'istanza denominata
my-instance
che ha 2 CPU e 2048 MB di memoria, utilizza la seguente richiesta. SostituisciPROJECT_ID
con l'ID progetto.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-machine-type=custom-2-2048", "-zone=asia-south1", "-client-id=api", "-timeout=7056s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Reti personalizzate
La rete personalizzata deve essere definita nello stesso progetto in cui stai importando l'immagine.
gcloud
Per utilizzare una rete personalizzata, segui i passaggi dell'interfaccia a riga di Google Cloud CLI per importare un file OVA o importare un file OVF e specificare un flag
--network
. Se la rete è configurata con una modalità di subnet personalizzata, devi specificare anche i flag--subnet
e--zone
.Esempio 1: utilizzo di una rete personalizzata
Ad esempio, supponiamo le seguenti proprietà:
Esegui questo comando per importare un'istanza con le proprietà precedenti. Sostituisci
SERVICE_PROJECT_ID
con l'ID del progetto in cui vuoi importare l'appliance virtuale.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network custom-vpc-network \ --subnet company-vpc-us-east1-c \ --zone us-east1-c
Esempio 2: utilizzo di una rete personalizzata (VPC condiviso)
Ad esempio, supponiamo le seguenti proprietà:
Per importare una VM con le proprietà precedenti, segui questi passaggi:
REST
Per utilizzare una rete personalizzata, segui i passaggi dell'API Cloud Build per importare un OVA o importare un file OVF e specificare un argomento
-network
. Se la rete è configurata con una modalità di subnet personalizzata, devi specificare anche gli argomenti-subnet
e-zone
.Esempio: utilizzo di una rete personalizzata
Ad esempio, supponiamo le seguenti proprietà:
Crea la seguente richiesta
POST
per importare un'istanza con le proprietà precedenti. SostituisciSERVICE_PROJECT_ID
con l'ID del progetto in cui vuoi importare l'appliance virtuale.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-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=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Esempio 2: utilizzo di una rete personalizzata (VPC condiviso)
Ad esempio, supponiamo le seguenti proprietà:
Per importare una VM con le proprietà precedenti, segui questi passaggi:
Importa una VM utilizzando reti che non consentono indirizzi IP esterni
Per importare una VM utilizzando reti che non consentono indirizzi IP esterni, completa questi passaggi:
gcloud
Per importare un'appliance virtuale da Cloud Storage in Compute Engine, utilizza il comando
gcloud compute instances import
con il flag--no-address
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
Sostituisci quanto segue:
REST
Puoi importare una VM senza IP esterno utilizzando l'API Cloud Build con un override per l'IP esterno.
Per eseguire l'override delle impostazioni dell'IP esterno specificate nel file OVF, segui i passaggi dell'API Cloud Build per importare un OVA o importare un file OVF e specificare l'argomento
-no-external-ip
.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-no-external-ip", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Sostituisci quanto segue:
Importa un file OVA con un bootloader UEFI
gcloud
Puoi utilizzare il comando
gcloud compute instances import
per forzare un'importazione a utilizzare l'avvio UEFI.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
Sostituisci quanto segue:
REST
Puoi importare un file OVA con un bootloader UEFI utilizzando l'API Cloud Build e specificando l'argomento
-uefi-compatible
.Importa un'appliance virtuale utilizzando account di servizio personalizzati
Durante l'importazione di un'appliance virtuale, nel progetto vengono create istanze di macchine virtuali temporanee (VM). Lo strumento di importazione su queste VM temporanee deve essere autenticato.
Un account di servizio è un'identità collegata a una VM. È possibile accedere ai token di accesso all'account di servizio tramite il server dei metadati dell'istanza e utilizzarli per autenticare lo strumento di importazione nella VM.
Per impostazione predefinita, il processo di importazione utilizza l'account di servizio predefinito di Compute Engine. Tuttavia, se l'account di servizio Compute Engine predefinito è disabilitato nel tuo progetto o se vuoi utilizzare un account di servizio Compute Engine personalizzato, devi creare un account di servizio e specificarlo per il processo di importazione.
gcloud
REST
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-07-12 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -