Создание нескольких идентичных виртуальных машин в Microsoft Azure
Вступление
Я готовлю курс для 5 человек. Всем им понадобится виртуальная машина (ВМ) с Visual Studio 2017 и несколько файлов для выполнения упражнений. Я мог бы создать каждую машину, одну за другой, и везде выполнять одну и ту же установку, но это было бы не очень продуктивно и подвержено ошибкам. Вместо этого я хочу создать виртуальные машины, создав «главный» образ, из которого я могу легко создавать другие виртуальные машины.
Предпосылки
Если у вас еще нет учетной записи Azure, есть несколько способов получить бесплатную тестовую учетную запись. Вы можете перейти на https://portal.azure.com, где будут запрошены ваши учетные данные. Если у вас еще нет учетной записи, нажмите «Create One!», И Microsoft Azure с радостью поможет вам создать новую учетную запись. Эта учетная запись будет бесплатной в течение первых 3 месяцев и предоставит вам бесплатный (ограниченный) бюджет, позволяющий тестировать Microsoft Azure.
Создание первой ВМ
Я хочу создать образ виртуальной машины Windows, который будет содержать Visual Studio 2017 и все необходимые файлы курса. Я уже предпринял следующие шаги для организации своих ресурсов Azure:
- Создана новая группа ресурсов под названием «курсы».
- В этой группе ресурсов создана новая виртуальная машина с именем «vs2017-2».
- После запуска виртуальной машины установлено все необходимое программное обеспечение и загружены необходимые файлы.
Это не является предметом данной статьи, поэтому я не буду описывать это здесь.
Подготовка виртуальной машины для использования в качестве образа шаблона
Теперь, когда виртуальная машина установлена так, как нам нравится, давайте уничтожим ее ...
Мы собираемся подготовить образ таким образом, чтобы его можно было развернуть на нескольких компьютерах (или в нашем случае на виртуальных машинах). Они не обязательно имеют одинаковую конфигурацию, поэтому нам нужен инструмент для подготовки к этому процессу клонирования. Введите sysprep.exe.
Sysprep может обрезать образ до минимума, что позволяет использовать его для создания других виртуальных машин. На каждой виртуальной машине, которую мы создадим с использованием этого образа, будет установлено одинаковое программное обеспечение с одинаковыми файлами данных, настройками и т.д.
Вы можете найти sysprep в этой папке: %windir% \System32\Sysprep. Здесь вы можете найти использование Sysprep, очень хорошо описанное.
Sysprep можно использовать с параметрами (когда вы знаете, что вы делаете) или просто без параметров, что приведет к появлению небольшой формы. На скриншоте вы можете увидеть форму с правильными значениями, заполненными:
Out of Box Experience
Generalize. Этот флажок изменит ваш образ, чтобы его можно было запустить на другом компьютере. Все аппаратные настройки будут удалены.
Shutdown. С двумя предыдущими настройками вы создадите чистый образ вашего компьютера, который будет полезен только для создания других образов. Поэтому вам не понадобится перезагрузить этот образ.
Нажмите OK, если вы уверены, что все данные безопасности могут быть стерты с этой виртуальной машины. Sysprep очистит вашу виртуальную машину, а затем выполнит шаг обобщений. Это может занять несколько минут. Когда он будет готов, мы можем вернуться на портал Azure, чтобы сделать снимок.
Захват виртуальной машины в Azure
Как уже было сказано, следующим шагом сейчас является захват виртуальной машины, чтобы мы могли ее клонировать позже. Это сделано на блейде для самой виртуальной машины. Чтобы перейти туда: откройте группу ресурсов «courses», затем откройте виртуальную машину, которую вы только что создали и обобщили. В верхнем меню вы найдете кнопку «Capture».
Нажав на эту кнопку, вы попадете на страницу «Create image», где будут показаны некоторые предупреждения, с которых можно начать. Здесь вы дадите своему новому образу имя, назначите его группе ресурсов и получите возможность удалить захваченную виртуальную машину. Это имеет смысл, потому что эта ВМ больше не будет полезна. Ниже я создал изображение под названием «vs2017-image» в группе ресурсов «courses» и решил очистить (Automatically delete):
Нажатие на кнопку «Create»…
- Останавливает ВМ. После закрытия виртуальная машина все еще доступна в Azure (и все еще стоит денег). Если вы не собираетесь использовать виртуальную машину какое-то время, не забудьте также остановить ее на портале Azure. Предупреждение: при перезапуске виртуальной машины на портале у нее будет другой IP-адрес. Если вы загрузили файл RDP для доступа к этому аппарату, вам нужно будет адаптировать IP-адрес в файле RDP или загрузить его снова. Для курса я буду использовать 5 VMS только в течение 4 дней, и только с 8:00 до 17:00. Поэтому я также создаю политику для каждой виртуальной машины, которая остановит ее в 18:00.
- Обобщает ВМ дальше.
- Создает изображение.
- Удаляет виртуальную машину в соответствии с запросом.
Несмотря на то, что виртуальная машина удалена, другие элементы не удаляются автоматически, поэтому это необходимо сделать вручную. Эти элементы не стоят дорого в MS Azure, но это хорошая практика, чтобы удалить то, что вам больше не нужно.
- Публичный IP-адрес. Нажмите на публичный IP-адрес, чтобы открыть его блейд. Нажмите кнопку «Dissociate», чтобы удалить ее из сетевого интерфейса (и подтвердить). Теперь вы можете нажать кнопку «Delete», чтобы произвести окончательное уничтожение!
- Сетевой интерфейс. Откройте блейд, нажав на название, затем нажмите «Delete» (и подтвердите).
- Группа сетевой безопасности. Откройте блейд, нажав на название, затем нажмите «Delete» (и подтвердите).
- Диск. Откройте блейд, нажав на название, затем нажмите «Delete» (и подтвердите).
Порядок удаления важен, потому что некоторые ресурсы зависят от других.
Создание новой виртуальной машины из образа
Теперь пришло время получить выгоду от проделанной выше работы. На портале Azure щелкните созданное изображение (в этом примере «vs2017-image»). В появившемся блейде нажмите «Create VM». Это проведет вас через волшебную серию страниц, чтобы ввести все необходимые параметры. Важными параметрами являются:
- Ресурсная группа. Вы можете выбрать существующую группу ресурсов или создать новую для ВМ.
- Имя ВМ. Это должно быть уникальное имя для вашей виртуальной машины.
- Образ. Это будет предварительно заполнено именем образа, которое вы только что создали.
- Размер. Размер для вашей новой виртуальной машины. Это может быть изменено впоследствии, если это необходимо.
- Имя пользователя/пароль.
- Правила входящего порта. Если вы хотите получить доступ к ВМ через RDP, вам нужно добавить это здесь:
Вы можете указать эти правила на первой странице мастера или на вкладке сети.
- Большинство других полей будут зависеть от ваших конкретных потребностей.
Когда вы закончите, нажмите на кнопку «Create». VM теперь создается из образа. Вы можете проверить виртуальную машину, запустив ее; и подключение, чтобы проверить, все ли работает правильно. Когда виртуальная машина создана, она уже запущена, поэтому вы можете немедленно подключиться к ней.
Чтобы создать дополнительные виртуальные машины, вам не нужно ждать завершения создания первой виртуальной машины.
Заключение
Когда вам нужна одна или две виртуальные машины, возможно, не стоит устанавливать образ для клонирования виртуальных машин. Но когда вам нужно больше, вы сэкономите много времени, используя комбинацию sysprep/capture. В итоге шаги по созданию изображения довольно просты:
- Создайте виртуальную машину, которая будет служить главным шаблоном. Установите на неt все необходимое программное обеспечение и все файлы данных, которые могут вам понадобиться. Когда все будет работать, удалите временные файлы, которые вы оставили во время тестирования виртуальной машины. При необходимости также удалите списки MRU (например, в Visual Studio: недавно использованные файлы и проекты) и другие пользовательские состояния.
- Запустите инструмент sysprep на этой виртуальной машине.
- После завершения sysprep и выключения виртуальной машины выполните захват виртуальной машины на портале Azure. Нет необходимости удалять все остатки из основной виртуальной машины, но это хорошая практика.
- Когда захват сделан, вы можете создать новые виртуальные машины из созданного образа.