Google Compute Engine - клон-экземпляр

У меня есть экземпляр GCE, который я настроил и загрузил различные приложения (например, PHP-приложения, работающие под Apache). Теперь я хочу дублировать этот экземпляр - то есть все на нем. Я изначально думал, что клон может это сделать, но у меня была игра с ним, и это только, похоже, клонирует конфигурацию экземпляра, а не что-то настроенное на нем.

Я искал его, и похоже, что мне нужно сделать, это создать образ и использовать это изображение на новом экземпляре или клоне? Это верно? Если да, можно ли предпринять шаги, чтобы сделать это? Я посмотрел на страницу Google на изображениях, и она говорит о необходимости прекратить действие экземпляра. Я немного опасаюсь этого. Возможно, это просто язык, используемый в документах, но я не хочу потерять существующий экземпляр.

Кроме того, все будет сохранено на изображении? Так, например, будут ли все это делать на изображении?

  • MySQL - конфигурация и базы данных схемы и данные?
  • Apache - все установленные приложения под /var/www/html
  • PHP - php.ini и т.д.
  • Все остальные конфигурации/модификации сервера?

Ответ 1

Вы можете создать моментальный снимок исходного экземпляра, а затем создать новый экземпляр, который будет выбирать исходный снимок как диск. Он будет очень быстро реплицировать сервер. Для других подключенных дисков вам необходимо создать новый диск и скопировать файл по сети (scp, rsync и т.д.),

Ответ 2

Как уже упоминалось, если исходный экземпляр имеет прикрепленный вторичный диск, то ssh в новый экземпляр невозможно. Мне пришлось сделать снимок производственного экземпляра, поэтому я не мог отключить вторичный диск, не вызывая сбоев. Я смог устранить проблему, создав диск из моментального снимка, установив диск на другой экземпляр, удалив любую ссылку на вторичный диск, т.е. Удалив запись из /etc/fstab. Как только я это сделал, я смог использовать диск в качестве загрузочного диска в новом экземпляре и ssh.

Ответ 3

В веб-консоли создайте снимок, затем нажмите кнопку моментального снимка и кнопку CREATE INSTANCE, вы можете настроить параметры, а затем щелкнуть там, где он говорит:

Эквивалентная REST или командная строка

и скопируйте командную строку, это будет ваш шаблон.

Из этого вы можете создать aa BASH-скрипт (clone_instance.sh), я сделал что-то вроде этого:

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

Теперь, в вашем терминале, вы можете выполнить свой скрипт

sh clone_instance.sh

Ответ 4

В случае, если у вас есть другие диски, лучший способ без их размонтирования - это изменить путь их монтирования в /etc/fstab.

Если вы используете UUID в fstab и используете одни и те же диски из снимков (которые будут иметь одинаковые UUID), вы можете сделать клонирование без размонтирования чего-либо.

Просто измените каждый диск в fstab, чтобы использовать UUID, как это

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

вы можете получить UUID от

sudo blkid /dev/[DEVICE_ID]

если вы не уверены в своем DEVICE_ID, вы можете использовать

sudo lsblk

для получения списка идентификаторов устройств, используемых вашей системой.

Ответ 5

Вы можете использовать опцию импорта виртуальной машины GCP, чтобы вернуть эту машину в проект.