web-dev-qa-db-fra.com

Google Compute Engine: utiliser un instantané d'un autre projet?

J'ai deux projets dans ma console de développeur. J'ai pris un "instantané" de l'un des ordinateurs virtuels du projet-1. Je souhaite créer un nouveau VM dans le projet 2 à l'aide de l'instantané créé dans le projet 1. À l'heure actuelle, l'instantané n'est pas affiché dans l'option . Comment importer un instantané d'un projet à un autre?

20
remis haroon

Vous pouvez créer une image à partir du composant logiciel enfichable dans Project 1, puis créer une instance à partir de cette image à l'aide de Project 2. 

Je suppose que vous avez des droits d'édition dans les deux projets.

Votre question dit que vous avez un instantané et que vous souhaitez créer une instance dans le projet 2 à partir de l'instantané dans le projet 1.

Si vous avez toujours le disque disponible que vous avez capturé , assurez-vous qu'il n'est plus attaché à une instance. Si elle est toujours attachée à l'instance, décochez "supprimer le disque de démarrage lors de la suppression de l'instance" et supprimez l'instance. Accédez à Images et cliquez sur Créer une image à partir du disque, puis créez une image à partir de ce disque.

Si vous n'avez pas le disque disponible, mais seulement l'instantané , créez une instance et définissez le disque de démarrage comme instantané, puis sélectionnez votre instantané. Suivez ensuite les instructions ci-dessus pour créer une image en supprimant d’abord l’instance.

Vous avez maintenant une image dans le projet 1. Vous devriez la voir listée sous images.

Je ne sais pas pourquoi, mais vous ne verrez pas l'image dans la console du projet 2, mais vous pouvez utiliser gcloud pour créer une instance dans le projet 2 à l'aide de l'image du projet 1. Dans le projet 1, cliquez sur l'image. et cliquez sur "Voir REST", il y aura une URL complète à l'image, semblable à ceci: 

https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/Ruby-image

Utilisez gcloud pour créer une instance dans le projet 2 en utilisant l'image dans le projet 1:

gcloud config set project <project-id-of-project-2>
gcloud config list

(Vous devez vérifier que vous êtes dans le projet 2)

gcloud compute instances create <name of instance> --image https://www.googleapis.com/compute/v1/projects/cpomeroy-whitelist/global/images/Ruby-image

Évidemment, votre URL sera différente.

Je viens de tester cela et ça marche. Faites-moi savoir si vous avez besoin de plus d'aide.

34
chrispomeroy

La réponse publiée par @chrispomeroy a fonctionné pour moi, mais j’ai pu la simplifier un peu car j’ai besoin de le faire de plus en plus.

Supposons que vous avez une image dans project-1 et que vous devez créer une instance à l'aide de cette image dans project-2.

gcloud config set project "project-2"
gcloud compute instances create <name-of-new-instance> \
    --image <name-of-your-image-from-project-1> \
    --image-project "project-1"

Ceci élimine le besoin de s'inquiéter de l'utilisation de URL pour quoi que ce soit.

(EDIT:} _ Ma réponse ressemble assez à la sienne, mais la documentation pour ce genre de choses est ici: 

Les instances de calcul gcloud créent

19
jiminikiz

Vous n'avez pas besoin d'une image ou d'une machine virtuelle de travail, ni d'interrompre la machine virtuelle source. Créez simplement un instantané dans le projet source:

$ gcloud compute --project p1 disks snapshot the-snapshot src-disk --snapshot-names=the-snapshot
Created [https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot].

Créez ensuite un disque dans le projet de destination avec --source-snapshot pointant sur l'URL 'Créé' renvoyée ci-dessus:

$ gcloud compute --project p2 disks create the-disk \
    --source-snapshot https://www.googleapis.com/compute/v1/projects/p1/global/snapshots/the-snapshot

Cet usage n'a pas été montré dans la gclouddocs , je l'ai trouvé dans la réponse de @krishna praveen, mais son explication est incorrecte; vous n'avez pas besoin de supprimer des instances ou d'utiliser des images. Et cela fonctionne même si la source et la destination sont des disques de démarrage:

$ gcloud compute --project p2 instances create the-vm --disk name=the-disk,boot=yes

Si, pour une raison quelconque, vous avez besoin d'une image, vous pouvez toujours restaurer un instantané sur un disque et l'utiliser pour créer l'image sans ordinateur virtuel de travail. Cela est préférable si une VM scratch démarrait automatiquement les services au démarrage, ce qui pourrait interférer avec d'autres VM en cours d'exécution sur le même réseau de projet.

$ gcloud compute images create image-1 --source-disk=src-disk-image --source-disk-zone=zone1

Cette image peut maintenant être utilisée à partir d'un autre projet (comme le montre @jiminikiz ci-dessus).

$ gcloud compute --project p2 instances create <name-of-new-instance> --image image-1 \
    --image-project p1 --zone=zone
13
vdm

La solution fournie par "chrispomeroy" fonctionne bien, mais vous devez tout d'abord lancer gcloud avec votre compte d'utilisateur google personnel (au lieu du compte de service project2) (puisqu'il s'agit de celui qui est autorisé à accéder aux deux projets):

gcloud init (et a choisi [2] Login avec de nouveaux identifiants) 

Ensuite, vous pouvez effectivement créer le VM sur le projet 2 (à partir d’une image de base sur le projet 1) avec:

les instances de calcul gcloud créent testimg --image --image-project (aucune URL requise) J'ai testé aujourd'hui (nov 2015) et fonctionne bien

2
Charles Walker

Autant que je sache, ce n'est pas possible. Pour accomplir ce que vous avez décrit, la meilleure solution consiste à utiliser ce tutoriel . Vous avez quelques étapes à suivre pour créer un disque vierge, le connecter à la machine en question, archiver la partition de démarrage et le télécharger sur le stockage en nuage. Une fois cela fait, téléchargez-le localement, changez de projet et chargez-le sur l'autre projet. Vous pourrez alors sélectionner simplement la machine dans la liste des Images en cliquant sur New Instance

0
Marius I

Des instances peuvent être créées dans le projet à l'aide d'images. Maintenant, si vous avez une image dans le projet 1, vous pouvez également la sélectionner dans le projet 2. 

Mais, à ce jour, vous ne pouvez pas voir les disques du projet. Si vous devez migrer un VM avec les disques supplémentaires associés de Project 1 à Project 2, suivez les instructions ci-dessous.

  1. Utilisez l'instantané et créez le disque dans Project 2 en connectant l'interface de commande gcloud. Connectez-vous au projet 2, puis exécutez:

    gcloud compute --project "GCPProject2" disks create "myserver-disk1" --size "50" --zone "us-east1-b" --source-snapshot https://www.googleapis.com/compute/v1/projects/GCPProject1/global/snapshots/snapshot-myserver-disk1 --description "DriveName" --type "pd-standard"
    
  2. Ci-dessus créera le disque dans Project2. Ensuite, vous devez supprimer l'instance dans Project1 en conservant le disque d'amorçage. Créez ensuite l'image à partir du disque myserver-bootdisk. Une fois l'image créée, passez au projet 2, puis créez le serveur à partir d'une image, utilisez le menu déroulant et sélectionnez l'image dans le projet 1. 

  3. Ajoutez le disque supplémentaire que vous avez créé à partir de l'instantané et créez la machine virtuelle. 

0
krishna praveen

De quoi as-tu besoin? Vous devez avoir une image. Pour créer une image à partir du disque, celui-ci doit être détaché de toute instance.

Quelles sont les étapes si vous venez d'instance dans Project1:

  • Créez un instantané à partir de l'instance dans Project1.

  • Créez une instance à partir de cet instantané dans Project1. Décochez "Supprimer le disque de démarrage lorsque l'occurrence est supprimée". Cette instance est utilisée uniquement pour
    maintenant et va être supprimé

  • Supprimer l'instance que vous venez de créer

  • Allez dans le menu "Disks" et vous devez y voir le disque de l’instance

  • Allez dans le menu "Images" -> "Créer une image". Ici, vous pouvez créer une image. Si vous n'avez pas de disque détaché, aucun disque Ne sera disponible dans la liste déroulante.

  • Allez à Project 2 et créez une instance à l'aide de l'image personnalisée que vous avez créée pour Project 1. Comment? Disque d'amorçage -> Modifier -> Personnaliser Images-> Sélectionner un projet 1-> Vous pouvez voir votre image personnalisée

0
makkasi