Руководство. Создание и использование пользовательского образа для Масштабируемые наборы виртуальных машин с помощью 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. Позже эта виртуальная машина будет использована в качестве источника для образа.
В следующем примере создается виртуальная машина под управлением Linux с именем myVM в группе ресурсов с именем myResourceGroup.
export RANDOM_ID=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_ID"
export REGION="eastus"
export MY_VM_NAME="myVM"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_VM_NAME \
--image debian11 \
--admin-username azureuser \
--generate-ssh-keys
Совет
Идентификатор виртуальной машины указан в выходных данных команды az vm create. Скопируйте и сохраните его в безопасном расположении, чтобы его можно было использовать позже в этом руководстве.
Создание коллекции образов
Коллекция образов является основным ресурсом, который позволяет обмен изображениями.
Допустимые символы для имен коллекций — прописные или строчные буквы, цифры, точки и точки. Имя коллекции не может содержать дефисы. Имена коллекций должны быть уникальным в пределах вашей подписки.
Создайте коллекцию образов, используя команду az sig create.
В следующем примере :
- Вы создадите группу ресурсов для коллекции myGalleryRG , расположенной в восточной части США.
- Коллекция называется myGallery.
export MY_GALLERY_RG_NAME="myGalleryRG$RANDOM_ID"
export MY_GALLERY_NAME="myGallery$RANDOM_ID"
az group create --name $MY_GALLERY_RG_NAME --location $REGION
az sig create --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME
Создание определения образа
Образы можно объединять в логические группы с помощью определений образов. Они используются для управления сведениями о версиях образа, созданных в них.
В имени определения образа можно использовать прописные и строчные буквы, цифры, точки и дефисы.
Убедитесь, что определение изображения является правильным типом:
- Состояние . Если вы обобщили виртуальную машину (с помощью Sysprep для Windows или waagent -deprovision для Linux), необходимо создать обобщенное определение образа с помощью
--os-state generalized
. Если вы хотите использовать виртуальную машину без удаления существующих учетных записей пользователей, создайте специализированное определение образа с помощью--os-state specialized
. - Тип безопасности. Новые виртуальные машины Azure создаются с доверенным запуском, настроенным по умолчанию. В этом руководстве содержатся последующие примеры кода, которые отражают конфигурацию доверенного запуска при создании определения образа и масштабируемого набора. Если вы создаете образ с виртуальной машиной, которая не включает доверенный запуск, обязательно отобразите правильный тип безопасности при создании обоих этих ресурсов. Дополнительные сведения о доверенном запуске см. в разделе "Доверенный запуск" для виртуальных машин Azure.
Дополнительные сведения о значениях, которые можно указать для определения образа, см. в разделе Определения образов.
Создайте в коллекции определение образа, используя команду az sig image-definition create.
В следующем примере определение изображения:
- Имя myImageDefinition.
- Настроен для специализированного образа ОС Linux. Чтобы создать определение для образов с помощью ОС Windows, используйте
--os-type Windows
. - Настроено для доверенного запуска.
export MY_IMAGE_DEF_NAME="myImageDefinition$RANDOM_ID"
MY_PUBLISHER_NAME="myPublisher$RANDOM_ID"
az sig image-definition create \
--resource-group $MY_GALLERY_RG_NAME \
--gallery-name $MY_GALLERY_NAME \
--gallery-image-definition $MY_IMAGE_DEF_NAME \
--publisher $MY_PUBLISHER_NAME \
--offer myOffer \
--sku mySKU \
--os-type Linux \
--os-state specialized \
--features SecurityType=TrustedLaunch
Совет
Идентификатор определения образа указан в выходных данных команды. Скопируйте и сохраните его в безопасном расположении, чтобы его можно было использовать позже в этом руководстве.
Создание версии образа
Создайте версию образа на основе виртуальной машины, используя команду az image gallery create-image-version.
Допустимыми символами для имени версии образа являются цифры и точки. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.
В следующем примере :
- Версия образа — 1.0.0.
- Мы создадим одну реплику в регионе южной части США и одну реплику в регионе "Восточная часть США ". В числе регионов репликации должен быть регион, в котором находится исходная виртуальная машина.
--virtual-machine
— это идентификатор созданной ранее виртуальной машины.
export MY_VM_ID=$(az vm show --name $MY_VM_NAME --resource-group $MY_RESOURCE_GROUP_NAME --query "id" --output tsv)
az sig image-version create \
--resource-group $MY_GALLERY_RG_NAME \
--gallery-name $MY_GALLERY_NAME \
--gallery-image-definition $MY_IMAGE_DEF_NAME \
--gallery-image-version 1.0.0 \
--target-regions "southcentralus=1" "eastus=1" \
--virtual-machine $MY_VM_ID
Примечание.
Чтобы полностью завершить сборку и репликацию образа, необходимо дождаться завершения сборки и репликации того же образа, чтобы создать другую версию образа.
Вы также можете сохранить образ в хранилище класса Премиум, добавив --storage-account-type premium_lrs
, или хранилище, избыточное между зонами, добавив --storage-account-type standard_zrs
при создании версии образа.
Создание масштабируемого набора на основе образа
Вы создаете масштабируемый набор с помощью az vmss create
. Если вы используете специализированную исходную виртуальную машину, добавьте --specialized
параметр, чтобы указать, что это специализированный образ.
При использовании идентификатора определения образа для --image
создания экземпляров масштабируемого набора создается масштабируемый набор, использующий последнюю версию изображения, доступного. Если требуется определенная версия образа, убедитесь, что при определении образа --image
включен идентификатор версии образа.
Последний пример изображения:
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage
Пример конкретного изображения:
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0
В следующем примере масштабируемый набор:
- Имя myScaleSet
- Использование последней версии образа myImageDefinition .
- Настроено для доверенного запуска.
export MY_IMAGE_DEF_ID=$(az sig image-definition show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --gallery-image-definition $MY_IMAGE_DEF_NAME --query "id" --output tsv)
export MY_SCALE_SET_RG_NAME="myResourceGroup$RANDOM_ID"
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_ID"
az group create --name $MY_SCALE_SET_RG_NAME --location eastus
az vmss create \
--resource-group $MY_SCALE_SET_RG_NAME \
--name $MY_SCALE_SET_NAME \
--orchestration-mode flexible \
--image $MY_IMAGE_DEF_ID \
--specialized \
--security-type TrustedLaunch
Создание и настройка всех ресурсов и виртуальных машин масштабируемого набора занимает несколько минут.
Предоставление общего доступа к коллекции
Вы можете совместно использовать образы между подписками с помощью управления доступом на основе ролей Azure (Azure RBAC), а также предоставлять общий доступ к ним на уровнях версий коллекции, определения образа или образа. Любой пользователь с разрешением на чтение версии образа, даже в подписках, может развернуть виртуальную машину с помощью версии образа.
Мы рекомендуем предоставлять общий доступ другим пользователям на уровне коллекции.
Следующий пример:
- Возвращает идентификатор объекта коллекции с помощью az sig show.
- Предоставляет доступ к коллекции с помощью az role assignment create.
- Использует идентификатор объекта в качестве области назначения.
- Использует идентификатор пользователя, выполнившего вход, в качестве назначаемого для демонстрационных целей. При использовании этого кода в тестовом или рабочем коде убедитесь, что вы обновите назначаемого получателя, чтобы отразить, кто вы хотите получить доступ к этому изображению. Дополнительные сведения о совместном использовании ресурсов с помощью Azure RBAC см. в статье Добавление и удаление назначений ролей Azure с помощью Azure CLI. , а также адрес электронной почты, используя az role assignment create , чтобы предоставить пользователю доступ к общей коллекции образов.
export MY_GALLERY_ID=$(az sig show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --query "id" --output tsv)
export CALLER_ID=$(az ad signed-in-user show --query id -o tsv)
az role assignment create \
--role "Reader" \
--assignee $CALLER_ID \
--scope $MY_GALLERY_ID
Очистка ресурсов
Чтобы удалить масштабируемый набор и дополнительные ресурсы, удалите группу ресурсов и все входящие в нее ресурсы с помощью команды az group delete. При использовании параметра --no-wait
управление возвращается в командную строку без ожидания завершения операции. Параметр --yes
подтверждает, что вы хотите удалить ресурсы без дополнительного запроса.
Следующие шаги
Из этого руководства вы узнали, как создавать и использовать пользовательский образ виртуальной машины для масштабируемых наборов с помощью Azure CLI, в частности, как выполнять такие задачи:
- Создание Коллекции вычислений Azure
- Создание определения специализированного образа.
- Создание версии образа
- Создание масштабируемого набора на основе специализированного образа.
- Предоставление общего доступа к коллекции образов
Перейдите к следующему руководству, чтобы узнать, как развертывать приложения в масштабируемый набор.