Un dispositif virtuel est un package contenant des images disque et une configuration matérielle pour une instance de machine virtuelle (VM).
Le format OVF est le format couramment utilisé pour les dispositifs virtuels.
Lorsque vous empaquetez des dispositifs virtuels au format OVF, vous générez un package OVF. Un package OVF est un dossier qui contient un fichier descripteur .ovf
ainsi qu'un ensemble d'autres ressources, par exemple des disques. Lorsqu'un package OVF est archivé dans un seul fichier, il est appelé fichier OVA.
Vous pouvez importer des VM au format OVF dans Compute Engine, qu'elles soient contenues dans un package OVF ou dans un fichier OVA unique. Pour vérifier si le dispositif virtuel constitue le meilleur choix pour votre cas d'utilisation, consultez la page Choisir un chemin de migration.
Lorsque vous importez un dispositif virtuel, le processus d'importation utilise les informations stockées dans le fichier descripteur pour créer et démarrer une VM sur Compute Engine.
Sur Compute Engine, vous pouvez importer des fichiers OVA ou OVF comme suit :
- Importer des dispositifs virtuels en tant qu'instance. Consultez les pages Importer un fichier OVA et Importer un fichier OVF.
- Importer des dispositifs virtuels en tant qu'image système. Consultez la section Importer une image système à partir d'un dispositif virtuel.
Avant de commencer
- Si le projet dans lequel vous souhaitez importer le dispositif virtuel possède un règlement relatif aux images de confiance, ajoutez
projects/compute-image-import
etprojects/compute-image-tools
à la liste des éditeurs autorisés. - Si vous importez un dispositif virtuel à partir d'un autre projet, consultez la section Importer à partir d'un autre projet.
- Pour savoir comment satisfaire aux exigences avant d'importer des images, consultez la section Conditions préalables à l'importation et à l'exportation d'images de VM.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Les disques virtuels doivent être au format VMDK ou VHD.
Les disques virtuels ne doivent pas être chiffrés.
Pour vérifier que votre VM remplit les conditions requises, vous pouvez exécuter l'outil de vérification préalable.
- Pour tous les systèmes d'exploitation Windows, PowerShell version 3 ou ultérieure doit être installé. Les versions de PowerShell antérieures à la version 3.0 peuvent entraîner des problèmes avec les scripts de démarrage et d'arrêt utilisés lors du processus d'importation.
Pour toutes les distributions Linux, le disque de démarrage doit répondre aux exigences suivantes :
- GRUB doit être installé sur le disque de démarrage.
- Le disque de démarrage ne doit pas couvrir plusieurs disques physiques. Un disque partitionné à l'aide d'un gestionnaire de volumes logiques (LVM, Logical Volume Manager) n'est pas compatible. Si le disque couvre plusieurs disques physiques, la VM créée à partir du fichier OVF risque de ne pas démarrer sur Compute Engine.
- Les fichiers OVF doivent fournir la portabilité
Level 1
comme décrit dans le document de spécification OVF. Les dispositifs virtuels qui présentent un niveau de portabilitéLevel 2
peuvent être importés, mais les extensions personnalisées, telles que les détails spécifiques à l'hyperviseur source, sont ignorées lors du processus d'importation. - Le fichier OVF ne doit contenir qu'une seule VM. S'il en contient plusieurs, seule la première VM est importée.
- Le premier disque du fichier OVF doit être amorçable.
- Disques virtuels. Informations récupérées à partir de l'élément
DiskSection
du package OVF. Processeur et mémoire. Informations récupérées à partir de l'élément
ResourceAllocationSection
du package OVF.Si les configurations du processeur ou de la mémoire se trouvent en dehors des plages compatibles avec Compute Engine, le processus d'importation définit les valeurs à la limite maximale acceptée par Compute Engine.
Disque de démarrage. Informations récupérées à partir de l'élément
BootDeviceSection
du package OVF.Système d'exploitation invité. Informations récupérées à partir de l'élément
OperatingSystemSection
du package OVF.Les informations du système d'exploitation invité sont utilisées pour installer les pilotes et les packages d'environnement invité appropriés sur l'instance importée. Si les informations relatives au système d'exploitation invité sont incorrectes dans le package OVF, l'importation échoue. Vous pouvez utiliser l'option
--os
pour ignorer les informations relatives au système d'exploitation invité.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- Projet source : projet dans lequel le fichier OVA ou OVF est stocké.
- Projet de destination : le projet dans lequel vous souhaitez créer la VM ou l'image système.
- Dans votre projet source, localisez le bucket Cloud Storage.
Dans le bucket Cloud Storage, accordez le rôle
roles/storage.objectViewer
aux comptes de service suivants :- Compte de service Cloud Build pour le projet de destination : ce compte de service est au format
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
. - Compte de service Compute Engine pour le projet de destination : ce compte de service est au format
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
.
Remplacez
DESTINATION_PROJECT_NUMBER
par le numéro de projet associé au projet de destination.Pour en savoir plus sur l'octroi d'un accès à un bucket Cloud Storage, consultez la page Ajouter un compte principal à une stratégie au niveau du bucket.
- Compte de service Cloud Build pour le projet de destination : ce compte de service est au format
Importez le dispositif virtuel ou l'image système.
- Importez le dispositif virtuel dans Cloud Storage.
Pour importer un fichier OVA depuis Cloud Storage vers Compute Engine, utilisez la commande
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
Remplacez les éléments suivants :
VM_NAME
: le nom de l'instance que vous souhaitez créer.PATH_TO_OVA_FILE
: le chemin d'accès à votre fichier OVA sur Cloud Storage.
Exemples
Pour importer un fichier OVA
Ubuntu.ova
et créer une instance nomméemy-instance
, exécutez la commande suivante :gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
Si les informations sur le système d'exploitation invité sont incorrectes ou si vous souhaitez ignorer le système d'exploitation détecté, vous pouvez spécifier le système d'exploitation en ajoutant l'option
--os
. Pour obtenir la liste des valeurs acceptées, examinez les options--os
de la commandegcloud compute instances import
.Par exemple, pour importer un fichier OVA
Ubuntu.ova
et créer une instance nomméemy-instance
qui exécute Ubuntu 16.04, exécutez la commande suivante :gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
Importez le dispositif virtuel dans Cloud Storage.
Envoyez une requête
POST
à l'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" ] }
Remplacez l'élément suivant :
PROJECT_ID
: l'ID du projet dans lequel vous souhaitez importer le fichier OVA.VM_NAME
: le nom de l'instance de machine virtuelle à créer. Exemple :my-instance
.SOURCE_URI
: l'URI du fichier OVA stocké dans Cloud Storage. Exemple :gs://my-bucket/my-instance.ova
.ZONE
: la zone dans laquelle créer l'instance de VM. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.
Pour consulter les autres valeurs
args
que vous pouvez spécifier, reportez-vous à la section des options facultatives de la page GitHub dédiée à l'importation OVF dans Compute Engine.Exemple de réponse
L'exemple de réponse suivant ressemble à la sortie renvoyée :
{ "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" ] } } }
Pour surveiller votre compilation, vous pouvez utiliser l'une des méthodes suivantes :
- Exécutez une requête projects.builds.get en utilisant la valeur
build-id
renvoyée. - Examinez les journaux hébergés à l'adresse
logUrl
fournie.
- Importez le dispositif virtuel dans Cloud Storage.
Pour importer un fichier OVF depuis Cloud Storage vers Compute Engine, utilisez la commande
gcloud compute instances import
.Si votre répertoire ne contient qu'un fichier OVF, vous pouvez fournir soit le chemin vers le fichier descripteur soit celui vers le répertoire contenant le fichier OVF.
Pour importer un fichier OVF en indiquant le chemin vers le fichier descripteur, exécutez la commande suivante :
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
Pour importer un fichier OVF en indiquant le chemin du répertoire, exécutez la commande suivante :
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
Remplacez les éléments suivants :
VM_NAME
: le nom de l'instance à créer.PATH_TO_OVF_FILE
: le chemin d'accès au fichier OVF sur Cloud Storage.PATH_TO_OVF_DIRECTORY
: le chemin d'accès au répertoire qui contient le fichier OVF sur Cloud Storage.
Exemples
Pour importer un fichier OVF
Ubuntu.ovf
à partir du répertoiremy-ovf-directory
, qui crée une instance nomméemy-instance
, exécutez la commande suivante :gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Pour importer un fichier OVF à partir du répertoire
my-ovf-directory
, qui crée une instance nomméemy-instance
, exécutez la commande suivante :gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
Si les informations sur le système d'exploitation invité sont incorrectes ou si vous souhaitez ignorer le système d'exploitation détecté, vous pouvez spécifier le système d'exploitation en ajoutant l'option
--os
. Pour obtenir la liste des valeurs acceptées, examinez les options--os
de la commandegcloud compute instances import
. Par exemple, pour importer un fichier OVFUbuntu.ovf
et créer une instance nomméemy-instance
qui exécute Ubuntu 16.04, exécutez la commande suivante :gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Ajoutez le dispositif virtuel dans Cloud Storage.
Envoyez une requête
POST
à l'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" ] }
Remplacez l'élément suivant :
PROJECT_ID
: l'ID du projet dans lequel vous souhaitez importer le fichier OVA.VM_NAME
: le nom de l'instance de machine virtuelle à créer. Exemple :my-instance
.SOURCE_URI
: l'URI du fichier OVF stocké dans Cloud Storage. Exemple :gs://my-bucket/my-instance.ovf
.OS
: le système d'exploitation du fichier OVF. Exemple :ubuntu-1604
. L'option--os
est facultative par défaut, mais vous pouvez ignorer le système d'exploitation détecté à l'aide de cette option. Pour obtenir la liste des valeurs acceptées, examinez les options--os
de la commandegcloud compute instances import
.ZONE
: la zone dans laquelle créer l'instance de VM. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.
Pour consulter les autres valeurs
args
que vous pouvez spécifier, reportez-vous à la section des options facultatives de la page GitHub dédiée à l'importation OVF dans Compute Engine.Exemple de réponse
L'exemple de réponse suivant ressemble au résultat renvoyé :
{ "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" ] } } }
Vous pouvez surveiller votre compilation de deux manières différentes :
- Exécutez une requête projects.builds.get en utilisant la valeur
build-id
renvoyée. - Examinez les journaux hébergés à l'adresse
logUrl
fournie.
- Nom de la VM :
my-instance
- Réseau :
custom-vpc-network
- Sous-réseau :
company-vpc-us-east1-c
- Zone :
us-east1-c
- Nom de la VM :
my-instance-2
- Réseau :
my-shared-vpc
- Sous-réseau :
my-shared-subnet
- Zone :
us-east1-c
Ajoutez le rôle
compute.networkUser
au compte de service Cloud Build. Pour plus d'informations, consultez la section Attribuer les rôles requis au compte de service Cloud Build.Importez 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
Remplacez les éléments suivants :
SERVICE_PROJECT_ID
: ID du projet dans lequel vous souhaitez importer le dispositif virtuel.HOST_PROJECT_ID
: ID du projet dans lequel se trouve le VPC partagé.
- Nom de la VM :
my-instance
- Réseau :
custom-vpc-network
- Sous-réseau :
company-vpc-us-east1-c
- Zone :
us-east1-c
- Nom de la VM :
my-instance-2
- Réseau :
my-shared-vpc
- Sous-réseau :
my-shared-subnet
- Zone :
us-east1-c
Ajoutez le rôle
compute.networkUser
au compte de service Cloud Build. Pour plus d'informations, consultez la section Attribuer les rôles requis au compte de service Cloud Build.Créez la requête
POST
suivante pour importer 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" ] }
Remplacez les éléments suivants :
SERVICE_PROJECT_ID
: ID du projet dans lequel vous souhaitez importer le dispositif virtuel.HOST_PROJECT_ID
: ID du projet dans lequel se trouve le VPC partagé.
Ajoutez le dispositif virtuel dans Cloud Storage.
Le processus d'importation nécessite que les gestionnaires de packages soient installés sur le système d'exploitation de la VM. Ces gestionnaires de packages peuvent avoir besoin d'envoyer des requêtes à des dépôts de packages en dehors de Google Cloud. Pour autoriser l'accès à ces mises à jour, vous devez configurer Cloud NAT. Pour en savoir plus, consultez la page Créer une configuration NAT à l'aide de Cloud Router.
Configurez l'accès privé à Google. Pour obtenir des instructions détaillées, consultez la page Configurer l'accès privé à Google.
Importez la VM à l'aide de Google Cloud CLI ou de REST.
Lorsque la VM est créée à partir d'un dispositif virtuel, des VM temporaires sont créées dans votre projet. Pour vous assurer que ces VM temporaires ne se voient pas attribuer d'adresses IP externes, vous devez spécifier une option ou un argument supplémentaire.
Pour en savoir plus, cliquez sur les onglets suivants :
VM_NAME
: le nom de l'instance que vous souhaitez créer.SOURCE_URI
: l'URI de votre fichier OVA ou OVF sur Cloud Storage. Exemple :gs://my-bucket/Ubuntu.ova
.ZONE
: la zone dans laquelle créer le dispositif virtuel. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.PROJECT_ID
: ID du projet dans lequel vous souhaitez importer l'image.VM_NAME
: nom de la VM à créer.SOURCE_FILE
: URI de l'image dans Cloud Storage. Exemple :gs://my-bucket/Ubuntu.ova
ZONE
: zone dans laquelle créer l'instance. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.VM_NAME
: nom de la VM que vous souhaitez créer.SOURCE_URI
: l'URI de votre fichier OVA ou OVF sur Cloud Storage. Exemple :gs://my-bucket/Ubuntu.ova
.Importez le dispositif virtuel dans Cloud Storage.
Dans l'API, créez une requête
POST
auprès de l'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" ] }
Remplacez l'élément suivant :
PROJECT_ID
: l'ID du projet dans lequel vous souhaitez importer le fichier OVA.VM_NAME
: le nom de l'instance de machine virtuelle à créer. Exemple :my-instance
.SOURCE_URI
: l'URI du fichier OVA stocké dans Cloud Storage. Exemple :gs://my-bucket/my-instance.ova
.ZONE
: la zone dans laquelle créer l'instance de VM. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.
Ajoutez le dispositif virtuel dans Cloud Storage.
Créez un compte de service et attribuez les rôles minimaux. Pour en savoir plus sur la création des comptes de service, consultez la page Créer et gérer des comptes de service.
Au minimum, le compte de service Compute Engine spécifié doit avoir les rôles suivants :
roles/compute.storageAdmin
roles/storage.objectViewer
Ces rôles minimaux sont nécessaires pour le compte de service spécifié pour l'option
--compute-service-account
. Pour plus d'informations, consultez la section Attribuer les rôles requis au compte de service Compute Engine.Utilisez la commande
gcloud compute instances import
pour importer le dispositif virtuel.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
Remplacez l'élément suivant :
VM_NAME
: le nom de l'instance que vous souhaitez créer.SOURCE_URI
: l'URI de votre fichier OVA ou OVF sur Cloud Storage. Exemple :gs://my-bucket/Ubuntu.ova
.ZONE
: la zone dans laquelle créer le dispositif virtuel. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.TEMP_SERVICE_ACCOUNT_EMAIL
: adresse e-mail associée au compte de service personnalisé créé à l'étape précédente. Ce compte de service est utilisé par les VM temporaires. S'il n'est pas spécifié la VM utilise le compte de service Compute Engine par défaut.SERVICE_ACCOUNT_EMAIL
: adresse e-mail associée au compte de service personnalisé qui doit être associé à la VM créée par le processus d'importation. Il n'existe aucune restriction d'autorisations pour ce compte de service. Vous pouvez le personnaliser si nécessaire. S'il n'est pas spécifié, le compte de service Compute Engine par défaut est associé à la VM.SCOPES
: spécifiez le niveau d'accès de l'option--service-account
. Si aucune valeur n'est spécifiée, les champs d'application par défaut sont utilisés. Pour en savoir plus, consultez la section concernant l'option--scopes
.
Ajoutez le dispositif virtuel dans Cloud Storage.
Créez un compte de service et attribuez les rôles minimaux. Pour en savoir plus sur la création des comptes de service, consultez la page Créer et gérer des comptes de service.
Au minimum, le compte de service Compute Engine spécifié doit avoir les rôles suivants :
roles/compute.storageAdmin
roles/storage.objectViewer
Ces rôles minimaux sont nécessaires pour le compte de service spécifié pour l'argument
-compute-service-account
. Pour plus d'informations, consultez la section Attribuer les rôles requis au compte de service Compute Engine.Dans l'API, créez une requête
POST
auprès de l'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" ] }
Remplacez l'élément suivant :
PROJECT_ID
: ID du projet dans lequel vous souhaitez importer l'image.VM_NAME
: nom de la VM à créer.SOURCE_FILE
: URI de l'image dans Cloud Storage. Exemple :gs://my-bucket/Ubuntu.ova
ZONE
: zone dans laquelle créer l'instance. Si vous ne renseignez pas ce champ, la zone par défaut du projet est utilisée.TEMP_SERVICE_ACCOUNT_EMAIL
: adresse e-mail associée au compte de service personnalisé créé à l'étape précédente. Ce compte de service est utilisé par les VM temporaires. S'il n'est pas spécifié la VM utilise le compte de service Compute Engine par défaut.SERVICE_ACCOUNT_EMAIL
: adresse e-mail associée au compte de service personnalisé qui doit être associé à la VM créée par le processus d'importation. Il n'existe aucune restriction d'autorisations pour ce compte de service. Vous pouvez le personnaliser si nécessaire. S'il n'est pas spécifié, le compte de service Compute Engine par défaut est associé à la VM.SCOPES
: spécifiez le niveau d'accès de l'option-service-account
. Si aucune valeur n'est spécifiée, les champs d'application par défaut sont utilisés. Pour en savoir plus, consultez la section concernant l'option--scopes
.
- Apprenez-en plus sur les nœuds à locataire unique.
- En savoir plus sur BYOL.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Exigences
Cette section répertorie les conditions requises pour importer des dispositifs virtuels dans Compute Engine.
Configuration requise pour la VM source
Les conditions suivantes doivent être remplies par la VM utilisée pour créer le fichier OVF :
Le système d'exploitation de la VM source doit répondre aux exigences suivantes :
Exigences relatives aux fichiers OVF
Le fichier OVF doit répondre aux exigences suivantes :
Autorisations
Pour garantir une expérience optimale lors de l'importation des images, assurez-vous d'avoir attribué les rôles IAM requis à votre compte, au compte de service Cloud Build et au compte de service Compute Engine. Pour en savoir plus, consultez la section Attribuer les rôles IAM requis.
Configurations importées par l'outil d'importation
La spécification du format OVF décrit le processus permettant d'empaqueter des dispositifs virtuels indépendamment du fournisseur de virtualisation. Les packages des dispositifs virtuels OVF contiennent un fichier descripteur
.ovf
ainsi qu'un ensemble d'autres ressources, par exemple des disques virtuels.Lorsque vous importez un dispositif virtuel OVF vers Compute Engine, les configurations du fichier descripteur ci-dessous sont traitées et importées :
Les VM importées sont toujours créées avec une carte réseau unique dotée d'une adresse IP externe. Cette carte réseau unique est utilisée quelles que soient les configurations réseau spécifiées dans le fichier OVF. Pour importer une VM sans adresse IP externe, consultez la section Importer une VM sans adresse IP externe.
Lorsque vous importez un dispositif virtuel, les sections suivantes du fichier descripteur ne sont pas importées :
Limites
Cette fonctionnalité n'est pas disponible pour les projets protégés par VPC Service Controls.
Systèmes d'exploitation compatibles
Vous pouvez éventuellement spécifier le système d'exploitation dans l'élément
OperatingSystemSection
de votre fichier descripteur ou spécifier l'option--os
lorsque vous importez un dispositif virtuel à l'aide de la Commandegcloud compute instances import
.Pour en savoir plus sur les systèmes d'exploitation compatibles, consultez la page Détails des systèmes d'exploitation.
Compatibilité avec BYOL et BYOS
Par défaut, les fichiers OVF qui utilisent Windows Server et les systèmes d'exploitation Red Hat Enterprise Linux (RHEL) sont importés et configurés pour utiliser un mode de facturation à la demande basé sur un système d'exploitation premium, ce qui entraîne des frais supplémentaires.
Si vous préférez utiliser votre propre licence ou abonnement logiciel, vous pouvez importer des dispositifs virtuels avec leurs licences. Pour en savoir plus sur les systèmes d'exploitation compatibles avec BYOL ou BYOS, consultez la page Détails des systèmes d'exploitation.
Vous pouvez importer des dispositifs en tant que dispositifs sous licence BYOL à l'aide de la commande
gcloud compute instances import
avec l'option--byol
. Si vous spécifiez manuellement le système d'exploitation, utilisez l'option--os
pour spécifier une valeur contenant le suffixebyol
pour le système d'exploitation invité que vous souhaitez importer. Par exemple,--os=rhel-8-byol
importe une image RHEL 8 avec une licence existante.Importer entre les projets
Si votre projet source et votre projet de destination sont différents, les comptes de service du projet de destination doivent avoir accès au bucket Cloud Storage de votre projet source.
Pour effectuer une importation à partir d'un autre projet, procédez comme suit :
Importer des dispositifs virtuels
Vous pouvez importer votre dispositif virtuel à l'aide de Google Cloud CLI ou de REST.
Importer un fichier OVA
gcloud
REST
Importer un fichier OVF
gcloud
REST
Importer avec des paramètres personnalisés
CPU et mémoire personnalisés
gcloud
Si vous souhaitez remplacer la configuration des processeurs ou de la mémoire spécifiée dans le fichier OVF, suivez les étapes d'importation d'un fichier OVA ou d'importation d'un fichier OVF dans Google Cloud CLI en spécifiant les options
--custom-cpu
et--custom-memory
.Exemple
Pour importer une instance nommée
my-instance
disposant de deux processeurs et de 2 048 Mo de mémoire, exécutez la commande suivante :gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
Pour remplacer la configuration du processeur ou de la mémoire spécifiée dans le fichier OVF, suivez les étapes de l'API Cloud Build pour importer un fichier OVA ou importer un fichier OVF et spécifiez l'argument
-machine-type
. Cet argument-machine-type
représente un type de machine prédéfini ou personnalisé à utiliser.Exemple
Pour importer une instance nommée
my-instance
disposant de deux processeurs et de 2 048 Mo de mémoire, utilisez la requête suivante : RemplacezPROJECT_ID
par l'ID du projet.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" ] }
Réseaux personnalisés
Le réseau personnalisé doit être défini dans le même projet que celui dans lequel vous importez l'image.
gcloud
Si vous souhaitez utiliser un réseau personnalisé, suivez les étapes de Google Cloud CLI pour importer un fichier OVA ou importer un fichier OVF et spécifiez l'option
--network
. Si le réseau est configuré en mode sous-réseau personnalisé, vous devez également spécifier les options--subnet
et--zone
.Exemple 1 : Utiliser un réseau personnalisé
Par exemple, considérons les propriétés suivantes :
Exécutez la commande suivante pour importer une instance dotée des propriétés ci-dessus. Remplacez
SERVICE_PROJECT_ID
par l'ID du projet dans lequel vous souhaitez importer le dispositif virtuel.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
Exemple 2 : Utiliser un réseau personnalisé (VPC partagé)
Par exemple, considérons les propriétés suivantes :
Pour importer une VM dotée des propriétés ci-dessus, procédez comme suit :
REST
Pour utiliser un réseau personnalisé, suivez les étapes de l'API Cloud Build pour importer un fichier OVA ou importer un fichier OVF et spécifiez un argument
-network
. Si le réseau est configuré en mode sous-réseau personnalisé, vous devez également spécifier les arguments-subnet
et-zone
.Exemple : Utiliser un réseau personnalisé
Par exemple, considérons les propriétés suivantes :
Créez la requête
POST
suivante pour importer une instance possédant les propriétés ci-dessus. RemplacezSERVICE_PROJECT_ID
par l'ID du projet dans lequel vous souhaitez importer le dispositif virtuel.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" ] }
Exemple 2 : Utiliser un réseau personnalisé (VPC partagé)
Par exemple, considérons les propriétés suivantes :
Pour importer une VM dotée des propriétés ci-dessus, procédez comme suit :
Importer une VM à l'aide de réseaux n'autorisant pas les adresses IP externes
Pour importer une VM à l'aide de réseaux n'autorisant pas les adresses IP externes, procédez comme suit :
gcloud
Pour importer un dispositif virtuel de Cloud Storage vers Compute Engine, exécutez la commande
gcloud compute instances import
avec l'option--no-address
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
Remplacez l'élément suivant :
REST
Vous pouvez importer une VM sans adresse IP externe à l'aide de l'API Cloud Build, en définissant une valeur de remplacement pour l'adresse IP externe.
Pour remplacer les paramètres d'adresse IP externe spécifiés dans le fichier OVF, suivez les étapes de l'API Cloud Build pour importer un fichier OVA ou importer un fichier OVF et spécifiez l'argument
-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" ] }
Remplacez l'élément suivant :
Importer un fichier OVA avec un bootloader UEFI
gcloud
Vous pouvez forcer l'importation à utiliser le démarrage UEFI à l'aide de la commande
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
Remplacez les éléments suivants :
REST
Pour importer un fichier OVA avec un bootloader UEFI, utilisez l'API Cloud Build et spécifiez l'argument
-uefi-compatible
.Importer un dispositif virtuel à l'aide de comptes de service personnalisés
Lors de l'importation de dispositifs virtuels, des instances de machine virtuelle (VM) temporaires sont créées dans votre projet. L'outil d'importation sur ces VM temporaires doit être authentifié.
Un compte de service est une identité associée à une VM. Les jetons d'accès au compte de service sont accessibles via le serveur de métadonnées d'instance et permettent d'authentifier l'outil d'importation sur la VM.
Par défaut, le processus d'importation utilise le compte de service Compute Engine par défaut. Toutefois, si le compte de service Compute Engine par défaut est désactivé dans votre projet ou si vous souhaitez utiliser un compte de service Compute Engine personnalisé, vous devez créer un compte de service et le spécifier pour le processus d'importation.
gcloud
REST
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/22 (UTC).
-