Поиск сведений об образе в Azure Marketplace с помощью Azure CLI

Внимание

В этой статье упоминается CentOS — дистрибутив Linux, достигший конца жизненного цикла (EOL). Пожалуйста, учитывайте объём использования и планируйте соответственно. Дополнительные сведения см. в руководстве centOS End Of Life.

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

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

Вы также можете просматривать доступные образы и варианты в Azure Marketplace или с помощью Azure PowerShell.

Терминология

Атрибуты образа Marketplace в Azure:

  • Издатель. Организация, создавшая образ. Примеры: Canonical, RedHat, SUSE.
  • Предложение. Имя группы связанных образов, созданных издателем. Примеры: 0001-com-ubuntu-server-jammy, RHEL, sles-15-sp3.
  • Номер SKU. Экземпляр предложения, например основной выпуск дистрибутива. Примеры: 22_04-lts-gen2, 8-lvm-gen2, gen2.
  • Версия: номер версии SKU образа.

Эти значения можно передавать по отдельности или в виде образаURN, объединив эти значения через двоеточие (:). Например: Издатель:Предложение:SKU:Версия. Можно заменить номер версии в URN на latest (самая последняя), чтобы получить последнюю версию образа.

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

Запустите az vm image list --all , чтобы просмотреть все доступные вам образы, но может потребоваться несколько минут, чтобы создать весь список. Более быстрый вариант — использовать az vm image listбез --all параметра, чтобы просмотреть кэшированный список популярных образов виртуальных машин в Azure Marketplace. Например, выполните следующую команду, чтобы отобразить список в формате таблицы:

az vm image list --output table

Выходные данные включают URN образа. Если не указывать параметр --all, в результатах также могут присутствовать значения UrnAlias для популярных образов, например Ubuntu2204. Точный кэшированный список зависит от Azure CLI версии и облака.

В приведённом ниже неполном примере показаны некоторые псевдонимы образов Linux, возвращаемых Azure CLI 2.87.0, включая псевдонимы Azure Linux 4.0:

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             azurelinux-4                  microsoftazurelinux     4                                   microsoftazurelinux:azurelinux-4:4:latest                                       AzureLinux4              latest
Arm64           azurelinux-4                  microsoftazurelinux     4-arm64                             microsoftazurelinux:azurelinux-4:4-arm64:latest                                 AzureLinux4Arm64         latest
x64             azurelinux-4                  microsoftazurelinux     4-gen1                              microsoftazurelinux:azurelinux-4:4-gen1:latest                                  AzureLinux4Gen1          latest
x64             CentOS                        OpenLogic               8_5-gen2                            OpenLogic:CentOS:8_5-gen2:latest                                                CentOS85Gen2             latest
x64             Debian11                      Debian                  11-backports-gen2                   Debian:debian-11:11-backports-gen2:latest                                       Debian-11                latest
x64             flatcar-container-linux-free  kinvolk                 stable-gen2                         kinvolk:flatcar-container-linux-free:stable-gen2:latest                         FlatcarLinuxFreeGen2     latest
x64             opensuse-leap-15-4            SUSE                    gen2                                SUSE:opensuse-leap-15-4:gen2:latest                                             OpenSuseLeap154Gen2      latest
x64             RHEL                          RedHat                  8-lvm-gen2                          RedHat:RHEL:8-lvm-gen2:latest                                                   RHELRaw8LVMGen2          latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             0001-com-ubuntu-server-jammy  Canonical               22_04-lts-gen2                      Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest                    Ubuntu2204               latest

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

Architecture    Offer                         Publisher               Sku                                 Urn                                                                            Alias                    Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------ -----------------------  ---------
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition       MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest      Win2022AzureEdition       latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore   latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                    Win2019Datacenter         latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                    Win2016Datacenter         latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                 Win2012R2Datacenter       latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                    Win2012Datacenter         latest

Поиск определённых изображений

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

Например, следующая команда отображает все предложения Debian:

az vm image list --offer Debian --all --output table

Вы можете ограничить результаты одной архитектурой, добавив --architecture параметр. Например, чтобы отобразить все образы Arm64, доступные от Canonical:

az vm image list --architecture Arm64 --publisher Canonical --all --output table

Просмотреть все доступные образы

Еще один способ найти образ в определенном регионе — последовательно выполнить команды az vm image list-publishers, az vm image list-offers и az vm image list-skus. С помощью этих команд определяются следующие значения:

  1. Вывести список издателей образов для расположения. В этом примере мы рассмотрим регион "Западная часть США ".

    az vm image list-publishers --location westus --output table
    
  2. Вывести список предложений заданного издателя. В этом примере мы добавим RedHat в качестве издателя.

    az vm image list-offers --location westus --publisher RedHat --output table
    
  3. Получить список номеров SKU для требуемого предложения. В этом примере мы добавим RHEL в качестве предложения.

    az vm image list-skus --location westus --publisher RedHat --offer RHEL --output table
    

Примечание.

Canonical изменила названия Offer, которые компания использует для самых последних версий. До Ubuntu 20.04 название Offer — UbuntuServer. Для Ubuntu 20.04 название предложения0001-com-ubuntu-server-focal, а для Ubuntu 22.04 — 0001-com-ubuntu-server-jammy.

  1. Для данного издателя, предложения и SKU отображают все версии образа. В этом примере мы добавим 9_1 в качестве номера SKU.

    az vm image list \
        --location westus \
        --publisher RedHat \
        --offer RHEL \
        --sku 9_1 \
        --all --output table
    

Передайте это значение из столбца URN в параметре --image при создании виртуальной машины с помощью команды az vm create. Номер версии в URN можно также заменить на "последнюю", чтобы использовать последнюю версию образа.

При развертывании виртуальной машины с помощью шаблона Resource Manager установите отдельные параметры образа в свойствах imageReference. См. справочник по шаблонам.

Проверка сведений о плане покупки

Некоторые образы виртуальных машин в Azure Marketplace имеют дополнительные условия лицензии и условия покупки, которые необходимо принять перед их программным развертыванием.

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

Чтобы просмотреть информацию о плане покупки образа, выполните команду az vm image show с URN образа. Если свойство plan в выходных данных не равно null, образ содержит условия использования, которые необходимо принять перед программным развертыванием.

Например, образ Canonical Ubuntu Server 18.04 LTS не содержит дополнительных условий, так как plan информация отсутствуетnull:

az vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest

Выходные данные:

{
  "dataDiskImages": [],
  "id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201901220",
  "location": "westus",
  "name": "18.04.201901220",
  "osDiskImage": {
    "operatingSystem": "Linux"
  },
  "plan": null,
  "tags": null
}

После запуска аналогичных команд для образа RabbitMQ, сертифицированного Bitnami, отображаются следующие свойства plan: name, product и publisher. (Некоторые образы также имеют свойство promotion code).

az vm image show --location westus --urn bitnami:rabbitmq:rabbitmq:latest

Выходные данные:

{
  "dataDiskImages": [],
  "id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/bitnami/ArtifactTypes/VMImage/Offers/rabbitmq/Skus/rabbitmq/Versions/3.7.1901151016",
  "location": "westus",
  "name": "3.7.1901151016",
  "osDiskImage": {
    "operatingSystem": "Linux"
  },
  "plan": {
    "name": "rabbitmq",
    "product": "rabbitmq",
    "publisher": "bitnami"
  },
  "tags": null
}

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

Принятие условий

Чтобы просмотреть и принять условия лицензии, используйте команду az vm image terms. Принимая эти условия, вы включаете программное развертывание в своей подписке. Для образа нужно принять условия только один раз для каждой подписки. Например:

az vm image terms show --urn bitnami:rabbitmq:rabbitmq:latest

Вывод включает ссылку licenseTextLink на условия лицензии и указывает, что значение accepted равно true.

{
  "accepted": true,
  "additionalProperties": {},
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.MarketplaceOrdering/offertypes/bitnami/offers/rabbitmq/plans/rabbitmq",
  "licenseTextLink": "https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_BITNAMI%253a24RABBITMQ%253a24RABBITMQ%253a24IGRT7HHPIFOBV3IQYJHEN2O2FGUVXXZ3WUYIMEIVF3KCUNJ7GTVXNNM23I567GBMNDWRFOY4WXJPN5PUYXNKB2QLAKCHP4IE5GO3B2I.txt",
  "name": "rabbitmq",
  "plan": "rabbitmq",
  "privacyPolicyLink": "https://bitnami.com/privacy",
  "product": "rabbitmq",
  "publisher": "bitnami",
  "retrieveDatetime": "2019-01-25T20:37:49.937096Z",
  "signature": "XXXXXXLAZIK7ZL2YRV5JYQXONPV76NQJW3FKMKDZYCRGXZYVDGX6BVY45JO3BXVMNA2COBOEYG2NO76ONORU7ITTRHGZDYNJNXXXXXX",
  "type": "Microsoft.MarketplaceOrdering/offertypes"
}

Чтобы принять условия, введите:

az vm image terms accept --urn bitnami:rabbitmq:rabbitmq:latest

Развертывание новой виртуальной машины с помощью параметров образа

Располагая сведениями об образе, вы можете развернуть его с помощью команды az vm create.

Чтобы развернуть образ, который не содержит сведений о плане, например последний образ Ubuntu Server 18.04 от Canonical, передайте URN для --image:

az group create --name myURNVM --location westus
az vm create \
   --resource-group myURNVM \
   --name myVM \
   --admin-username azureuser \
   --generate-ssh-keys \
   --image Canonical:UbuntuServer:18.04-LTS:latest

Для образа с параметрами плана приобретения, например образа RabbitMQ Certified by Bitnami, вы передаете URN для --image, а также указываете параметры плана приобретения:

az group create --name myPurchasePlanRG --location westus

az vm create \
   --resource-group myPurchasePlanRG \
   --name myVM \
   --admin-username azureuser \
   --generate-ssh-keys \
   --image bitnami:rabbitmq:rabbitmq:latest \
   --plan-name rabbitmq \
   --plan-product rabbitmq \
   --plan-publisher bitnami

Если вы получите сообщение о принятии условий образа, ознакомьтесь с разделом Принять условия. Убедитесь, что выходные данные az vm image terms accept возвращают значение "accepted": true, , показывающее, что вы приняли условия изображения.

Использование существующего виртуального жесткого диска с информацией о плане приобретения

Если у вас уже есть VHD от виртуальной машины, созданной с использованием платного образа Azure Marketplace, то при создании из этого VHD новой виртуальной машины может потребоваться указать сведения о плане приобретения.

Если у вас по-прежнему есть исходная виртуальная машина или другая виртуальная машина, созданная с помощью того же образа из Marketplace, вы можете получить имя плана, издателя и сведения о продукте с помощью команды az vm get-instance-view. В данном примере мы видим виртуальную машину с именем myVM из группы ресурсов myResourceGroup, а далее отображается информация плана покупки.

az vm get-instance-view -g myResourceGroup -n myVM --query plan

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

Получив сведения о плане, можно создать новую виртуальную машину, используя параметр --attach-os-disk для указания VHD.

az vm create \
  --resource-group myResourceGroup \
  --name myNewVM \
  --nics myNic \
  --size Standard_DS1_v2 --os-type Linux \
  --attach-os-disk myVHD \
  --plan-name planName \
  --plan-publisher planPublisher \
  --plan-product planProduct

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

Инструкции по быстрому созданию виртуальной машины на основе данных образа см. в статье Создание виртуальных машин Linux и управление ими с помощью Azure CLI.