Руководство по Создание пользовательского образа виртуальной машины Azure с помощью Azure CLI

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

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

  • Создание Коллекции вычислений Azure (ранее — Общая коллекция образов)
  • Создание определения образа
  • Создание версии образа
  • Создание виртуальной машины из образа
  • Общий доступ к коллекции

При работе с этим руководством используется интерфейс командной строки (CLI) в Azure Cloud Shell, который всегда обновлен до последней версии. Чтобы открыть Cloud Shell, выберите Попробовать в верхнем углу любого блока кода.

Если вы решили установить и использовать CLI локально, для работы с этим руководством потребуется Azure CLI версии 2.35.0 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Обзор

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

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

Возможность "Коллекция вычислений Azure" имеет несколько типов ресурсов.

Ресурс Описание
Источник образа Это ресурс, который можно использовать для создания версии образа в коллекции. Источником образа может быть существующая виртуальная машина Azure (универсальная или специализированная), управляемый образ, моментальный снимок или версия образа в другой коллекции.
Коллекции Как и Azure Marketplace, коллекция — это репозиторий для администрирования и совместного использования образов и приложений VM, но здесь, в отличие от Azure Marketplace, доступ к коллекции контролируете вы.
Определение образа Определения образов создаются в коллекции и содержат сведения об образе и требованиях для их внутреннего использования. Эти сведения включают в себя: определение, относится ли этот образ к Windows или к Linux, заметки о выпуске, а также минимальные и максимальные требования к памяти. Это определение типа образа.
Версия образа Версия образа используется для создания виртуальной машины с помощью коллекции. В зависимости от требований для вашей среды, у вас может быть несколько версий образа. Так же как и управляемый образ при использовании версии образа для создания виртуальной машины, версия образа используется для создания новых дисков для виртуальной машины. Версии образов можно использовать несколько раз.

Подготовка к работе

Ниже показано, как взять существующую виртуальную машину и превратить ее в повторно используемый пользовательский образ, который можно использовать для создания новых экземпляров виртуальной машины.

Для выполнения примера в этом руководстве требуется виртуальная машина. При необходимости просмотрите краткое руководство по CLI, чтобы создать виртуальную машину для работы с этим руководством. При работе с учебником заменяйте имена ресурсов по мере необходимости.

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.

Коллекция является основным ресурсом, который позволяет обмен изображениями.

Имя коллекции может содержать прописные и строчные буквы, а также цифры и точки, но не дефисы. Имена коллекций должны быть уникальным в пределах вашей подписки.

Создайте коллекцию, используя команду az sig create. В следующем примере показано, как создать группу ресурсов с именем myGalleryRG в регионе восточная часть США и коллекцию с именем myGallery.

az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery

Получение информации о виртуальной машине

Список доступных виртуальных машин можно просмотреть с помощью команды az vm list.

az vm list --output table

Когда вы узнаете имя виртуальной машины и группу ресурсов, в которой она находится, получите идентификатор виртуальной машины с помощью команды az vm get-instance-view.

az vm get-instance-view -g MyResourceGroup -n MyVm --query id

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

Создание определения образа

Образы можно объединять в логические группы с помощью определений образов. Они используются для управления сведениями о версиях образов, созданных в них.

В имени определения образа можно использовать прописные и строчные буквы, цифры, точки и дефисы.

Дополнительные сведения о значениях, которые можно указать для определения образа, см. в разделе Определения образов.

Создайте в коллекции определение образа, используя команду az sig image-definition create.

В этом примере определение образа имеет имя myImageDefinition и предназначено для специализированного образа ОС Linux.

az sig image-definition create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

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

Создание версии образа

Создайте версию образа на основе виртуальной машины, используя команду az sig image-version create.

Допустимыми знаками для имени версии образа являются цифры и точки. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.

В этом примере версия нашего образа — 1.0.0 , и мы создадим две реплики в регионе Центрально-западная часть США , одну реплику в центрально-южной части США и одну реплику в регионе Восточная часть США 2 с использованием избыточного между зонами хранилища. В числе регионов репликации должен быть регион, в котором находится исходная виртуальная машина.

Замените значение параметра --managed-image в этом примере на идентификатор вашей виртуальной машины из предыдущего шага.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
   --replica-count 2 \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Примечание

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

Вы также можете сохранить образ в хранилище класса Премиум, добавив --storage-account-type premium_lrs, или хранилище, избыточное между зонами, добавив --storage-account-type standard_zrs при создании версии образа.

Создание виртуальной машины

Создайте виртуальную машину с помощью команды az vm create с помощью --specialized параметра , чтобы указать, что образ является специализированным.

Используйте идентификатор определения образа в качестве значения параметра --image, чтобы создать виртуальную машину на основе последней доступной версии образа. Вы также можете создать виртуальную машину на основе определенной версии, указав идентификатор версии образа в параметре --image.

В нашем примере виртуальная машина создается на основе последней версии образа myImageDefinition.

az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
    --name myVM2 \
    --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
    --specialized

Вы можете предоставить общий доступ к образам в разных подписках, используя механизм управления доступом на основе ролей Azure (Azure RBAC). Такой доступ к образам можно предоставить на уровне коллекции, определения образа или версии образа. Любой пользователь с разрешениями на чтение версии образа, даже из другой подписки, сможет развернуть виртуальную машину с помощью версии образа.

Мы рекомендуем предоставлять общий доступ другим пользователям на уровне коллекции. Чтобы получить идентификатор объекта коллекции, используйте команду az sig show.

az sig show \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --query id

Используйте идентификатор объекта в качестве области, а также адрес электронной почты и команду az role assignment create, чтобы предоставить пользователю доступ к Коллекции вычислений Azure. Замените <email-address> и <gallery iD> своими значениями.

az role assignment create \
   --role "Reader" \
   --assignee <email address> \
   --scope <gallery ID>

Дополнительные сведения о совместном использовании ресурсов с помощью Azure RBAC см. в статье Добавление и удаление назначений ролей Azure с помощью Azure CLI.

Средство создания образов Azure

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

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

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

  • Создание Коллекции вычислений Azure
  • Создание определения образа
  • Создание версии образа
  • Создание виртуальной машины из образа
  • Общий доступ к коллекции

Перейдите к следующему руководству, чтобы узнать о Масштабируемые наборы виртуальных машин.