Поделиться через


Сохранение пользовательских образов и их распространение в несколько лабораторий

В данной статье содержатся инструкции по сохранению пользовательских образов из уже созданных виртуальных машин. Здесь также рассматривается распространение этих пользовательских образов в другие DevTest Labs в организации.

Предварительные требования

Должны присутствовать следующие элементы:

  • Лаборатория для фабрики образов в Azure DevTest Labs.
  • Проект Azure DevOps, используемый для автоматизации фабрики образов.
  • Расположение исходного кода, содержащего скрипты и конфигурацию (в нашем примере — в том же проекте DevOps, который упоминался на предыдущем шаге).
  • Определение сборки для управления задачами Azure PowerShell.

При необходимости, выполните действия из раздела Запуск фабрики образов из Azure DevOps, чтобы создать или настроить эти элементы.

Сохранение виртуальных машин в качестве универсальных виртуальных жестких дисков

Сохранение существующих виртуальных машин в качестве универсальных виртуальных жестких дисков (VHD). Здесь представлен пример сценария PowerShell по сохранению существующих виртуальных машин в качестве универсальных VHD. Чтобы им воспользоваться, в определение сборки сначала следует добавить еще одну задачу Azure PowerShell, как показано на следующем рисунке:

Добавить шаг Azure PowerShell

Когда в списке появится новая задача, выбрать элемент; таким образом, появится возможность заполнить все данные, как показано на следующем рисунке:

Параметры PowerShell

Универсальные или специализированные пользовательские образы

При создании пользовательского образа из виртуальной машины в портале Azure можно выбрать, какой образ — универсальный или специализированный — необходим.

  • Специализированный пользовательский образ: средство Sysprep/Deprovision на компьютере НЕ запускалось. Это означает, что образ является точной копией диска ОС на существующей виртуальной машине (моментальный снимок копии). Новая машина содержит те же файлы, приложения, учетные записи пользователей, имя компьютера и т. д., что и пользовательский образ.
  • Универсальный пользовательский образ: на компьютере запускалось средство Sysprep/Deprovision. Этот процесс удаляет учетные записи пользователей, удаляет имя компьютера и отделяет кусты реестра пользователя. Целью является подготовка образа, чтобы его можно было настроить при создании другой виртуальной машины. При подготовке виртуальной машины к работе с помощью Sysprep процесс удаляет текущую виртуальную машину. Текущая виртуальная машина больше работать не будет.

Скрипт для привязки пользовательских образов в данной фабрике образов сохраняет виртуальные жесткие диски для всех виртуальных машин, созданных на предыдущем шаге. Скрипт определяет виртуальные жесткие диски на основе тега ресурса в Azure.

Обновление конфигурации распространения образов

Следующим шагом процесса является передача пользовательских образов из данной лаборатории фабрики образов в другие лаборатории, которым они необходимы. Основным элементом этого процесса является файл конфигурации labs.json. Данный файл можно найти в папке Конфигурация, входящей в эту фабрику образов.

В файле конфигурации labs.json имеется два ключевых момента:

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

Ниже приведен пример файла labs.json с двумя лабораториями. В этом случае пользователь передает образы в две разные лаборатории.

{
   "Labs": [
      {
         "SubscriptionId": "<subscription ID that contains the lab>",
         "LabName": "<Name of the DevTest Lab>",
         "ImagePaths": [
               "Win2012R2",
               "Win2016/Datacenter.json"
         ]
      },
      {
         "SubscriptionId": "<subscription ID that contains the lab>",
         "LabName": "<Name of the DevTest Lab>",
         "ImagePaths": [
               "Win2016/Datacenter.json"
         ]
      }
   ]
}

Создание задачи сборки

Выполняя те же шаги, которые были описаны выше, добавьте в определение сборки задачу сборки Azure PowerShell. Введите данные, как показано на следующем рисунке:

Снимок экрана: задача сборки для распространения образов.

Используются следующие параметры: -ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(DevTestLabName) -maxConcurrentJobs 20

Данная задача принимает в фабрике образов любые пользовательские образы и отправляет их в любые лаборатории, определенные в файле Labs.json.

Постановка сборки в очередь

После завершения задачи сборки на распространение поставьте в очередь новую сборку, чтобы обеспечить нормальную работу. После успешного завершения сборки новые пользовательские образы отображаются в целевой лаборатории, которая была введена в файл конфигурации Labs.json.

Дальнейшие действия

В следующей статье данной серии вы обновите фабрику образов, указав политику хранения и шаги очистки: Настройка политики хранения и запуск скриптов очистки.