Ранее мы говорили о средствах командной строки Windows Azure и использовали их в нескольких публикациях, таких как Brian’s Migrating Drupal на виртуальную машину Windows Azure . В то время как инструменты обычно полезны для множества вещей, одной из вещей, которые были болезненными при работе с командной строкой, является экспорт настроек для виртуальной машины, а затем воссоздание виртуальной машины из этих настроек.
Вам может быть интересно, почему вы хотите экспортировать виртуальную машину, а затем воссоздать ее. Для меня стоимость — это первое, что приходит на ум. Поддержание работы виртуальной машины стоит дороже, чем хранение диска в хранилище. Поэтому, если бы у меня было что-то в виртуальной машине, которое я использую только несколько часов в день, я бы удалил виртуальную машину, когда я ее не использую, и воссоздаю ее, когда мне это понадобится снова. Другая потенциальная причина заключается в том, что вы хотите создать копию диска, чтобы вы могли создать дублирующую виртуальную машину.
Раньше процесс экспорта был довольно загадочным; используя команду azure vm show с параметром —json и передавая выходные данные в файл. Затем взломав файл .json, чтобы исправить его, чтобы его можно было использовать с командой azure vm create-from. Это было плохо. Это было так плохо, разработчики добавили новую команду экспорта, чтобы создать для вас файл .json.
Вот основной процесс:
Создать ВМ
Создание VM было покрыто несколькими способами уже ; вы либо используете инструменты портала или командной строки, либо выбираете изображение из библиотеки или загружаете виртуальный жесткий диск. В моем случае я использовал следующую команду:
azure vm create larryubuntu CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd larry NotaRe
Эта команда создает новую виртуальную машину в центре обработки данных в восточной части США, включает SSH на порту 22, а затем сохраняет образ диска для этой виртуальной машины в большом двоичном объекте. Вы можете увидеть новый образ диска в хранилище больших двоичных объектов, запустив:
azure vm disk list
Результаты должны возвращать что-то вроде:
info: Executing command vm disk list + Fetching disk images data: Name OS data: ---------------------------------------- ------- data: larryubuntu-larryubuntu-0-20121019170709 Linux info: vm disk list command OK
Это фактический образ диска, который смонтирован виртуальной машиной.
Экспорт и удаление виртуальной машины
Хорошо, я сделал свою работу, и сейчас выходные. Мне нужно экспортировать настройки виртуальной машины, чтобы я мог воссоздать ее в понедельник, а затем удалить виртуальную машину, чтобы мне не платили за следующие 48 часов бездействия. Чтобы экспортировать настройки для виртуальной машины, я использую следующую команду:
azure vm export larryubuntu c:\stuff\vminfo.json
Это заставляет Windows Azure найти виртуальную машину с именем larryubuntu и экспортировать ее настройки в c: \ stuff \ vminfo.json. Файл .json будет содержать что-то вроде этого:
{ "RoleName":"larryubuntu", "RoleType":"PersistentVMRole", "ConfigurationSets": [ { "ConfigurationSetType":"NetworkConfiguration", "InputEndpoints": [ { "LocalPort":"22", "Name":"ssh", "Port":"22", "Protocol":"tcp", "Vip":"168.62.177.227" } ], "SubnetNames":[] } ], "DataVirtualHardDisks":[], "OSVirtualHardDisk": { "HostCaching":"ReadWrite", "DiskName":"larryubuntu-larryubuntu-0-20121024155441", "OS":"Linux" }, "RoleSize":"Small" }
Если вы похожи на меня, вы сразу же начнете думать: «Хм, интересно, могу ли я возиться с такими вещами, как RoleSize». И да, вы можете. Если вы хотите увеличить это значение до среднего, вы просто измените этот параметр на средний. Если вы хотите больше поиграть с различными настройками, похоже, что схема поддерживается по адресу https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/services/serviceManagement/models/ rolechema.json .
Получив файл, я могу безопасно удалить виртуальную машину с помощью следующей команды.
azure vm delete larryubuntu
Он вращается немного, а затем не больше, VM.
Воссоздать ВМ
Тьфу, понедельник Пора возвращаться к работе, и мне нужно, чтобы моя виртуальная машина снова заработала. Поэтому я запускаю следующую команду:
azure vm create-from larryubuntu c:\stuff\vminfo.json --location "East US"
Для раскрутки виртуальной машины требуется всего одна или две минуты, и она готова к работе.
Вот и все — быстро, просто и намного проще, чем старый процесс создания файла настроек .json. Обратите внимание, что я не слишком много играл с различными настройками, описанными в схеме для файла json, который я связал выше. Если вы найдете что-то полезное или интересное, чего можно достичь, взломав файл .json, оставьте комментарий об этом.