Статьи

Экспорт и импорт параметров виртуальной машины с помощью инструментов командной строки Azure

Ранее мы говорили о средствах командной строки 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, оставьте комментарий об этом.