Ce document explique comment copier votre VM dans un autre projet.
Avant de commencer
- Passez en revue les bonnes pratiques relatives aux instantanés de disques persistants et préparez votre disque de démarrage pour les instantanés.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Cloud de Confiance by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud init - Set a default region and zone.
-
Rôles requis
Pour obtenir les autorisations nécessaires à la copie d'une VM entre plusieurs projets, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour copier des VM entre plusieurs projets. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour copier une VM entre plusieurs projets :
compute.instances.createsur le projet-
Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnlysur l'image -
Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnlysur l'instantané -
Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnlysur le modèle d'instance -
Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.usesur le projet ou sur le sous-réseau choisi -
Pour spécifier une adresse IP statique pour la VM :
compute.addresses.usesur le projet -
Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un réseau VPC :
compute.subnetworks.useExternalIpsur le projet ou sur le sous-réseau choisi -
Pour attribuer un ancien réseau à la VM :
compute.networks.usesur le projet -
Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIpsur le projet -
Pour définir les métadonnées d'instance de VM pour la VM :
compute.instances.setMetadatasur le projet -
Pour définir des tags pour la VM :
compute.instances.setTagssur la VM -
Pour définir des étiquettes pour la VM :
compute.instances.setLabelssur la VM -
Pour définir un compte de service que doit utiliser la VM :
compute.instances.setServiceAccountsur la VM -
Pour créer un disque pour la VM :
compute.disks.createsur le projet -
Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture :
compute.disks.usesur le disque -
Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnlysur le disque
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Copier une VM dans un autre projet
Dans votre projet source, créez un instantané du disque de démarrage de la VM à l'aide de l'une des commandes suivantes :
Disque de démarrage zonal
Si votre VM possède un disque de démarrage zonal, créez un instantané à l'aide de la commande suivante :
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONERemplacez les éléments suivants :
- SNAPSHOT_NAME : nom de l'instantané.
- SOURCE_DISK : nom du volume de disque persistant zonal à partir duquel vous souhaitez créer un instantané.
- SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé. Choisissez ARCHIVE pour une conservation des données plus économique.
- SOURCE_DISK_ZONE : zone du volume de disque persistant zonal à partir duquel vous souhaitez créer un instantané.
Disque de démarrage régional
Si votre VM possède un disque de démarrage régional, créez un instantané à l'aide de la commande suivante :
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPERemplacez les éléments suivants :
- SNAPSHOT_NAME : nom de l'instantané.
- SOURCE_DISK : nom du volume de disque persistant régional à partir duquel vous souhaitez créer un instantané.
- SOURCE_DISK_REGION : région du volume de disque persistant régional à partir duquel vous souhaitez créer un instantané.
- SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
Créez une image personnalisée à partir de l'instantané à l'aide de la commande suivante :
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]Remplacez l'élément suivant :
IMAGE_NAME: nom de la nouvelle image.SOURCE_SNAPSHOT: instantané à partir duquel vous souhaitez créer l'image.LOCATION: option facultative permettant de spécifier la région ou l'emplacement multirégional dans lequel l'image est stockée. Par exemple, spécifiezuspour stocker l'image dans l'emplacement multirégionalus, ouus-central1pour la stocker dans la régionus-central1. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de l'emplacement source de votre image.
Facultatif : Partagez l'image personnalisée avec les utilisateurs qui créent des VM dans le projet de destination. Pour en savoir plus sur le partage d'images personnalisées, consultez la page Partager une image personnalisée au sein d'une organisation.
Dans votre projet de destination, créez une VM à partir de l'image personnalisée à l'aide de la commande suivante :
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ IMAGE_FLAG \ --subnet SUBNETRemplacez les éléments suivants :
VM_NAME: nom de la VM.IMAGE_PROJECT: ID du projet Cloud de Confiance contenant l'image.IMAGE_FLAG: spécifiez l'une des options suivantes :- Utilisez le flag
--image IMAGE_NAMEpour spécifier une image personnalisée.Par exemple :
--image my-debian-image-v2. - Si vous avez créé vos images personnalisées dans une famille d'images personnalisées, utilisez le flag
--image-family IMAGE_FAMILY_NAMEpour spécifier cette famille d'images personnalisées.Cette action crée la VM à partir de la version d'image d'OS non obsolète la plus récente de votre famille d'images personnalisées. Par exemple, si vous spécifiez
--image-family my-debian-family, Compute Engine crée une VM à partir de la dernière image d'OS dans votre famille d'images personnaliséesmy-debian-family.
- Utilisez le flag
SUBNET: si le sous-réseau et l'instance se trouvent dans le même projet, remplacezSUBNETpar le nom d'un sous-réseau situé dans la même région que l'instance.Pour spécifier un sous-réseau dans un réseau VPC partagé, remplacez
SUBNETpar une chaîne au format suivant :projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAMERemplacez les éléments suivants :
HOST_PROJECT_ID: ID de projet du projet hôte de VPC partagéREGION: région du sous-réseau.SUBNET_NAME: nom du sous-réseau.
La région du sous-réseau d'un réseau VPC partagé doit également correspondre à celle qui contient l'instance.
Étapes suivantes
- Personnalisez le réseau VPC du projet de destination.