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, чтобы вернуть эту машину в проект.