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

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

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

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этой статьей требуется Azure CLI версии 2.4.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Обзор

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

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

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

Сначала создайте группу ресурсов с помощью команды az group create, а затем — виртуальную машину с помощью команды az vm create. Позже эта виртуальная машина будет использована в качестве источника для образа. В следующем примере создается виртуальная машина с именем myVM в группе ресурсов myResourceGroup.

az group create --name myResourceGroup --location eastus

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Важно!

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

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

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

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

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

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

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

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

Убедитесь, что используется определение образа подходящего типа. Если вы сделали виртуальную машину универсальной (с помощью Sysprep для Windows или waagent -deprovision для Linux), создайте универсальное определение образа с помощью --os-state generalized. Если вы хотите использовать виртуальную машину без удаления существующих учетных записей пользователей, создайте специализированное определение образа с помощью --os-state specialized.

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

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

В этом примере определение образа имеет имя myImageDefinition и предназначено для специализированного образа ОС Linux. Чтобы создать определение для образов с помощью ОС Windows, используйте --os-type Windows.

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 image gallery create-image-version.

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

В этом примере версия нашего образа — 1.0.0, и мы собираемся создать 1 реплику в регионе центрально-южная часть США и 1 реплику в регионе восточная часть США 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 "southcentralus=1" "eastus=1" \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Примечание.

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

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

Создание масштабируемого набора на основе образа

Важно!

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub

Создайте масштабируемый набор на основе специализированного образа, используя команду az vmss create.

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

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

Создайте масштабируемый набор с именем myScaleSet на основе последней версии созданного ранее образа myImageDefinition.

az group create --name myResourceGroup --location eastus
az vmss create \
   --resource-group myResourceGroup \
   --name myScaleSet \
   --orchestration-mode flexible \
   --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, чтобы предоставить пользователю доступ к общей коллекции образов. Замените <email-address> и <gallery iD> своими значениями.

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

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

Очистка ресурсов

Чтобы удалить масштабируемый набор и дополнительные ресурсы, удалите группу ресурсов и все входящие в нее ресурсы с помощью команды az group delete. При использовании параметра --no-wait управление возвращается в командную строку без ожидания завершения операции. Параметр --yes подтверждает, что вы хотите удалить ресурсы без дополнительного запроса.

az group delete --name myResourceGroup --no-wait --yes

Следующие шаги

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

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

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