2014-09-28 13 views
13

Ho un'istanza GCE che ho personalizzato e caricato varie applicazioni (come app PHP in esecuzione con Apache). Ora voglio duplicare questa istanza - cioè tutto su di essa. Originariamente pensavo che il clone potesse farlo, ma ho avuto un problema con esso e sembra solo clonare la config di istanza e non qualcosa di personalizzato su di esso.Google Compute Engine - Clone Instance

L'ho cercato su google e sembra che quello che devo fare sia creare un'immagine e usare questa immagine su una nuova istanza o clone? È corretto? Se è così, ci sono alcuni passaggi da fare là fuori per fare questo? Ho dato un'occhiata alla pagina di Google sulle immagini e parla di dover terminare l'istanza per farlo. Sono un po 'diffidente nei confronti di questo. Forse è solo il linguaggio usato nei documenti, ma non voglio perdere la mia istanza esistente.

Inoltre, tutto verrà memorizzato sull'immagine? Quindi, per esempio, tutto ciò che segue è visibile sull'immagine?

  • MySQL - config & database schemi & dati?
  • Apache - Tutte le applicazioni installate sotto /var/www/html
  • PHP - php.ini, ecc ...
  • Tutti gli altri configs server/modifiche?
+0

Rilevante: http://stackoverflow.com/q/31312085/322020 – Nakilon

risposta

15

È possibile creare un snapshot dell'istanza di origine, quindi creare una nuova istanza selezionando l'istantanea di origine come disco. Replicherà il server molto velocemente. Per gli altri dischi collegati, è necessario creare un nuovo disco e copiare il file tramite net (scp, rsync ecc.)

+2

Se l'istanza di origine ha i dischi secondari collegati e montati in lettura/scrittura, è necessario scattare l'istantanea DOPO smontarli (altrimenti non si sarà in grado per ssh nella nuova istanza) e quindi creare un nuovo disco clonando i dischi di origine e montarli sul sistema di destinazione. –

+0

Impossibile arrestare l'istanza, modificare il disco secondario persistente in sola lettura, quindi eseguire lo snapshot. – mobcdi

+0

non aiuta le impostazioni del server – nafg

0

Come è stato detto, se l'istanza di origine ha un disco secondario collegato, non è possibile ssh nel nuovo esempio. Ho dovuto prendere uno snapshot di un'istanza di produzione, quindi non ho potuto smontare il disco secondario senza causare interruzioni. Sono stato in grado di risolvere il problema creando un disco dallo snapshot, montando il disco su un'altra istanza, rimuovendo qualsiasi riferimento al disco secondario, ovvero rimuovendo la voce da/etc/fstab. Una volta fatto ciò, sono stato in grado di usare il disco come disco di avvio in una nuova istanza e ssh su di esso.

0

Nella console Web, creare uno snapshot, poi clicca sul snapshot e sopra CREATE pulsante GRADO, è possibile personalizzare le impostazioni e quindi fare clic su cui si dice:

Equivalente REST o riga di comando

e copia la riga di comando, questo sarà il tuo modello.

Da questo, è possibile creare aa script bash (clone_instance.sh), ho fatto qualcosa di simile:

#!/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 

Ora, nel vostro terminale, è possibile eseguire lo script

sh clone_instance.sh 
0

Nel caso abbiate altri dischi collegati, il modo migliore senza effettivamente smontarli sta cambiando il percorso di come sono montati in/etc/fstab.

Se si utilizza l'UUID in fstab e si utilizzano gli stessi dischi dalle istantanee (che avranno gli stessi UUID), è possibile eseguire la clonazione senza smontare nulla.

Basta cambiare ogni disco in fstab per utilizzare UUID come questo

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

è possibile ottenere l'UUID da

sudo blkid /dev/[DEVICE_ID] 

se siete incerti circa la vostra DEVICE_ID è possibile utilizzare

sudo lsblk 

per ottenere l'elenco degli ID dispositivo utilizzati dal sistema.

+0

avviso che [NOFAIL] deve essere sostituito con "nofail" (senza virgolette) se si desidera che il sistema venga avviato anche senza trovare il disco – Trak

0

È possibile utilizzare l'opzione GCP Import VM per importare di nuovo la macchina nel progetto.

Problemi correlati