it-swarm.com.de

Google Compute Engine: Schnappschuss aus einem anderen Projekt verwenden?

Ich habe zwei Projekte in meiner Entwicklerkonsole. Ich habe eine "Momentaufnahme" einer der VMs in Projekt 1 erstellt. Ich möchte eine neue VM in Project-2 erstellen, indem ich den in Project-1 erstellten Snapshot verwendet. Momentan wird der Schnappschuss in der Option nicht angezeigt .. Wie kann ich den Schnappschuss von einem Projekt in ein anderes importieren?

20
remis haroon

Sie können ein Bild aus dem Snap in Project 1 erstellen und dann mit Project 2 eine Instanz aus diesem Bild erstellen. 

Ich gehe davon aus, dass Sie in beiden Projekten über Bearbeitungsrechte verfügen.

Ihre Frage besagt, dass Sie einen Schnappschuss haben und aus dem Schnappschuss in Projekt 1 eine Instanz in Projekt 2 erstellen möchten.

Wenn Sie noch über die Festplatte verfügen, die Sie mit dem Snapshot aufgenommen haben , stellen Sie sicher, dass sie nicht mehr mit einer Instanz verbunden ist. Wenn es noch mit der Instanz verbunden ist, deaktivieren Sie "Bootdiskette beim Löschen löschen" und löschen Sie die Instanz. Gehen Sie zu Images, klicken Sie auf Image von Diskette erstellen und erstellen Sie ein Image von dieser Diskette.

Wenn Sie nicht über die Festplatte verfügen, sondern nur den Snapshot , erstellen Sie eine Instanz, legen Sie die Startdiskette als Snapshot fest und wählen Sie Ihren Snapshot aus. Folgen Sie dann den Anweisungen oben, um ein Bild zu erstellen, indem Sie zuerst die Instanz löschen.

Jetzt haben Sie ein Bild in Projekt 1. Sie sollten es unter Bildern aufgelistet sehen.

Ich bin nicht sicher, warum, aber das Bild wird in Projekt 2 in der Konsole nicht angezeigt. Sie können jedoch mit gcloud eine Instanz in Projekt 2 erstellen, indem Sie das Bild aus Projekt 1 verwenden. Klicken Sie in Projekt 1 auf das Bild und klicken Sie auf "view REST". Es wird eine vollständige URL zum Bild angezeigt, die der folgenden ähnelt: 

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

Verwenden Sie gcloud, um eine Instanz in Projekt 2 mithilfe des Abbilds in Projekt 1 zu erstellen:

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

(Sie sollten sich vergewissern, dass Sie sich in Projekt 2 befinden.)

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

Ihre URL wird natürlich anders sein.

Ich habe das gerade getestet und es funktioniert. Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

34
chrispomeroy

Die Antwort von @chrispomeroy hat für mich funktioniert, aber ich konnte sie etwas vereinfachen, da ich dies immer mehr tun muss.

Angenommen, Sie haben ein Bild in project-1 und müssen eine Instanz erstellen, die dieses Bild in project-2 verwendet.

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"

Dadurch entfällt die Notwendigkeit, für irgendetwas eine URL zu verwenden.

EDIT: Meine Antwort sieht an diesem Punkt ziemlich ähnlich aus, aber die Dokumente für dieses Zeug sind hier: 

gcloud Berechnungsinstanzen erstellen

19
jiminikiz

Sie benötigen keine Image- oder Scratch-VM und müssen die Quell-VM nicht unterbrechen. Erstellen Sie einfach einen Schnappschuss im Quellprojekt:

$ 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].

Erstellen Sie dann im Zielprojekt eine Festplatte, wobei --source-snapshot auf die oben angegebene URL "Created" zeigt:

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

Diese Verwendung wurde nicht in der gclouddocs gezeigt. Ich fand sie in der Antwort von @krishna praveen, aber seine Erklärung ist falsch. Sie müssen keine Instanzen löschen oder Bilder verwenden. Dies funktioniert auch, wenn sowohl Quelle als auch Ziel Bootdisketten sind:

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

Wenn Sie aus irgendeinem Grund ein Image benötigen, können Sie trotzdem einen Snapshot auf einem Datenträger wiederherstellen und dieses Image verwenden, um das Image ohne VM zu erstellen. Dies ist vorzuziehen, wenn ein Scratch VM beim Booten automatisch Dienste startet, die andere laufende VMs im selben Projektnetzwerk beeinträchtigen könnten.

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

Dieses Bild kann jetzt aus einem anderen Projekt verwendet werden (wie oben bei @jiminikiz gezeigt).

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

Die von "chrispomeroy" bereitgestellte Lösung funktioniert einwandfrei, erfordert jedoch zunächst die Initialisierung mit Ihrem persönlichen Google-Benutzerkonto (anstelle des Project2-Dienstkontos).

gcloud init (und wählte [2] Anmeldung mit neuen Anmeldeinformationen) 

Dann können Sie tatsächlich das VM in Projekt 2 (von einem Basisimage in Projekt 1) erstellen mit:

gcloud-Berechnungsinstanzen erstellen testimg --image --image-project (keine URL erforderlich) Ich habe heute (November 2015) getestet und funktioniert einwandfrei

2
Charles Walker

AFAIK ist nicht möglich. Um das, was Sie beschrieben haben, zu erreichen, verwenden Sie dieses Tutorial am besten. Sie haben ein paar Schritte, um eine leere Festplatte zu erstellen, sie an die betreffende Maschine anzuschließen, die Startpartition zu erstellen und in den Cloud-Speicher hochzuladen. Laden Sie die Datei dann lokal herunter, wechseln Sie die Projekte und laden Sie sie in das andere Projekt hoch. Sie können dann einfach das Gerät aus der Liste der Bilder auswählen, wenn Sie auf New Instance klicken.

0
Marius I

Instanzen können projektübergreifend mit Bildern erstellt werden. Wenn Sie nun ein Bild in Projekt 1 haben, können Sie dieses auch in Projekt 2 auswählen. 

Bis heute können Sie die Festplatten jedoch nicht im gesamten Projekt sehen. Wenn Sie eine VM mit zugeordneten zusätzlichen Festplatten von Project 1 nach Project 2 migrieren müssen, führen Sie die folgenden Schritte aus.

  1. Verwenden Sie den Schnappschuss, und erstellen Sie die Festplatte in Project 2, indem Sie die Befehlsschnittstelle gcloud anschließen. Verbinden Sie sich mit Project 2 und führen Sie dann Folgendes aus:

    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. Oben wird die Platte in Project2 erstellt. Dann müssen Sie die Instanz in Project1 löschen, indem Sie die Startdiskette beibehalten. Erstellen Sie dann das Image von der Festplatte myserver-bootdisk. Wenn das Image erstellt ist, wechseln Sie zu Project 2, erstellen Sie dann den Server aus Image, verwenden Sie die Dropdown-Liste und wählen Sie das Image aus Project 1 aus. 

  3. Fügen Sie die zusätzliche Festplatte hinzu, die Sie aus dem Snapshot erstellt haben, und erstellen Sie die VM. 

0
krishna praveen

Was du brauchst? Sie müssen ein Bild haben. Um ein Image von der Festplatte zu erstellen, muss die Festplatte von jeder Instanz getrennt werden.

Was sind die Schritte, wenn Sie nur eine Instanz in Project1 haben:

  • Erstellen Sie einen Schnappschuss von der Instanz in Project1.

  • Erstellen Sie eine Instanz aus diesem Snapshot in Project1. Deaktivieren Sie "Delete boot Disk, wenn Instanz gelöscht wird". Diese Instanz wird nur für verwendet
    jetzt und werde gelöscht

  • Löschen Sie die soeben erstellte Instanz

  • Gehen Sie zum Menü "Disks" und Sie müssen dort die Diskette von der Instanz sehen.

  • Gehen Sie zum Menü "Bilder" -> "Ein Bild erstellen". Hier können Sie ein Bild erstellen. Wenn Sie keine getrennte Festplatte haben, steht Ihnen in der Dropdown-Liste keine Festplatte zur Verfügung.

  • Gehen Sie zu Project 2 und erstellen Sie eine Instanz mit dem benutzerdefinierten Image, das Sie für Project 1 erstellt haben. Wie? Bootdiskette -> Ändern -> Benutzerdefinierte Bilder -> Projekt 1- auswählen - Hier können Sie Ihr benutzerdefiniertes Bild sehen

0
makkasi