2014-09-28 14 views
13

Ich habe eine GCE-Instanz, die ich angepasst und verschiedene Anwendungen hochgeladen habe (z. B. PHP-Anwendungen, die unter Apache laufen). Ich möchte nun diese Instanz duplizieren - also alles darauf. Ich dachte ursprünglich, Klon könnte dies tun, aber ich hatte ein Spiel damit und es scheint nur die Instanzkonfiguration zu klonen und nichts darauf angepasst.Google Compute Engine - Clone Instanz

Ich google es und es sieht so aus, als müsste ich ein Image erstellen und dieses Image für eine neue Instanz oder einen neuen Klon verwenden? Ist das richtig? Wenn ja, gibt es irgendwelche Schritte für Schritte, um dies zu tun? Ich habe mir die Google-Seite zu Bildern angesehen und es geht darum, die Instanz zu beenden, um dies zu tun. Ich bin etwas vorsichtig. Vielleicht ist es nur die in den Dokumenten verwendete Sprache, aber ich möchte meine vorhandene Instanz nicht verlieren.

Wird auch alles auf dem Bild gespeichert? Also, zum Beispiel, wird folgendes alles auf das Bild kommen?

  • MySQL - Konfig & Datenbanken Schemata & Daten?
  • Apache - Alle installierten Anwendungen unter /var/www/html
  • PHP - php.ini, etc ...
  • Alle anderen Server configs/Änderungen?
  • +0

    Relevant: http://StackOverflow.com/q/31312085/322020 – Nakilon

    Antwort

    15

    Sie können eine snapshot der Quellinstanz erstellen und dann eine neue Instanz erstellen, indem Sie den Quellsnapshot als Festplatte auswählen. Es wird den Server sehr schnell replizieren. Für andere angeschlossene Festplatten müssen Sie eine neue Festplatte erstellen und Datei nach Netz kopieren (scp, rsync usw.)

    +2

    Wenn Ihre Quellinstanz über sekundäre Festplatten verfügt, die als Lese-/Schreibzugriff bereitgestellt werden, müssen Sie den Snapshot NACH dem Deaktivieren der Snapshots erstellen (sonst können Sie nicht ssh in die neue Instanz) und erstellen Sie dann eine neue Festplatten klonen die Quellplatten und mounten sie auf dem Zielsystem. –

    +0

    Können Sie die Instanz nicht herunterfahren, ändern Sie die sekundäre persistente Festplatte zu schreibgeschützt und nehmen Sie dann den Snapshot. – mobcdi

    +0

    hilft nicht für die Servereinstellungen – nafg

    0

    Wie bereits erwähnt, wenn die Quellinstanz eine sekundäre Festplatte angeschlossen hat, ist es nicht möglich, ssh in die neue Beispiel. Ich musste einen Snapshot einer Produktionsinstanz erstellen, daher konnte ich die sekundäre Festplatte nicht unmounten, ohne eine Unterbrechung zu verursachen. Ich war in der Lage, das Problem zu beheben, indem ich einen Datenträger aus dem Snapshot erstellte, den Datenträger in eine andere Instanz einbaute und alle Referenzen auf den sekundären Datenträger löschte, d. H. Den Eintrag aus/etc/fstab entfernte. Sobald ich das getan hatte, war ich in der Lage, die Diskette als Bootdiskette in einer neuen Instanz und SSH zu verwenden.

    0

    in der Webkonsole, einen Snapshot erstellen, klicken Sie dann auf den Snapshot und über INSTANZ Taste erstellen, können Sie die Einstellungen anpassen und klicken Sie dann auf, wo es heißt:

    Equivalent REST oder Befehlszeile

    und kopieren Sie die Befehlszeile, dies wird Ihre Vorlage sein.

    Von diesem können Sie aa BASH-Skript (clone_instance.sh) erstellen, das habe ich so etwas wie dieses:

    #!/bin/bash -e 
    
    snapshot="my-snapshot-name" 
    gcloud_account="[email protected]" 
    
    #clone 10 machines 
    for machine in 01 02 03 04 05 06 07 08 09 10 
    do 
    
        gcloud compute --project "myProject" disks create "instance-${machine}" --size "220" --zone "us-east1-d" --source-snapshot "${snapshot}" --type "pd-standard" 
    
        gcloud compute --project "bizqualify" instances create "webscrape-${machine}" --zone "us-east1-d" --machine-type "n1-highmem-4" --network "default" --maintenance-policy "MIGRATE" --service-account "[email protected]" --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring.write","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --tags "http-server","https-server" --disk "name=webscrape-${machine},device-name=webscrape-${machine},mode=rw,boot=yes,auto-delete=yes" 
    
    done 
    

    nun in Ihrem Terminal können Sie Ihr Skript ausführen

    sh clone_instance.sh 
    
    0

    Wenn Sie andere Festplatten angeschlossen haben, ist der beste Weg, sie tatsächlich zu entfernen, der Pfad, in dem sie in/etc/fstab eingebunden werden.

    Wenn Sie die UUID in fstab verwenden und dieselben Datenträger aus Snapshots verwenden (die die gleichen UUIDs haben), können Sie das Klonen durchführen, ohne etwas aushängen zu müssen.

    Ändern Sie einfach jede Platte in fstab UUID wie diese

    UUID=[UUID_VALUE] [MNT_DIR] ext4 discard,defaults,[NOFAIL] 0 2 
    

    Sie die UUID erhalten können verwenden, um von

    sudo blkid /dev/[DEVICE_ID] 
    

    wenn Sie sich nicht sicher über Ihre DEVICE_ID Sie

    sudo lsblk 
    
    verwenden können

    , um die Liste der Geräte-IDs zu erhalten, die von Ihrem System verwendet werden.

    +0

    Beachten Sie, dass [NOFAIL] durch "NoFail" (keine Anführungszeichen) ersetzt werden soll, wenn Sie möchten, dass das System startet, ohne dass die Festplatte gefunden wird – Trak

    0

    Sie können die Option GCP Import VM verwenden, um diese Maschine in das Projekt zurück zu importieren.

    Verwandte Themen