Encontre informações de imagem do Azure Marketplace usando a CLI do Azure

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de EOL (fim da vida útil). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.

Aplica-se a: ✔️ VMs Linux ✔️ VMs Windows ✔️ Conjuntos de dimensionamento flexíveis

Este tópico descreve como usar a CLI do Azure para localizar imagens de VM no Azure Marketplace. Use essas informações para especificar uma imagem do Marketplace quando você criar uma VM programaticamente com a CLI, os modelos do Gerenciador de Recursos ou outras ferramentas.

Você também pode procurar imagens e ofertas disponíveis usando o Azure Marketplace ou a CLI do Azure.

Terminologia

Uma imagem do Marketplace no Azure tem os seguintes atributos:

  • Publicador: a organização que criou a imagem. Exemplos: Canonical, RedHat, SUSE.
  • Oferta: Nome de um grupo de imagens relacionadas criadas por um publicador. Exemplos: 0001-com-ubuntu-server-jammy, RHEL, sles-15-sp3.
  • SKU: uma instância de uma oferta, como uma versão principal de uma distribuição. Exemplos: 22_04-lts-gen2, 8-lvm-gen2, gen2.
  • Versão: o número de versão de uma imagem de SKU.

Esses valores podem ser passados individualmente ou como uma URNde imagem, combinando os valores separados por dois-pontos (:). Por exemplo: Publicador:Oferta:SKU:Versão. Você pode substituir o número de versão na URN por latest para usar a versão mais recente da imagem.

Se o distribuidor de imagens fornecer licenças adicionais e termos de compra, você deverá aceitar esses termos antes de usar a imagem. Para obter mais informações, consulte Verificar as informações do plano de compra.

Você pode executar o az vm image list --all para ver todas as imagens disponíveis, mas pode levar vários minutos para produzir a lista inteira. Uma opção rápida é o uso de az vm image list, sem a opção --all para ver uma lista de imagens de VM populares no Azure Marketplace. Por exemplo, execute o comando a seguir para exibir uma lista armazenada em cache de imagens populares em formato de tabela:

az vm image list --output table

O resultado inclui a URN da imagem. Se você omitir a opção --all, poderá ver o UrnAlias de cada imagem, se disponível. O UrnAlias é uma versão abreviada criada para imagens populares, como o Ubuntu2204. Os nomes de alias de imagem do Linux e seus detalhes gerados por este comando são:

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
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

Os nomes de alias de imagem do Windows e seus detalhes gerados por este comando são:

Architecture    Offer                         Publisher               Sku                                 Urn                                                                            Alias                    Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------ -----------------------  ---------
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                    Win2022Datacenter         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

Localizar imagens específicas

Você pode filtrar a lista de imagens por --publisher ou outro parâmetro para limitar os resultados.

Por exemplo, o seguinte comando exibe todas as ofertas do Debian:

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

Você pode limitar seus resultados a uma única arquitetura adicionando o --architecture parâmetro. Por exemplo, para exibir todas as imagens do Arm64 disponíveis na Canonical:

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

Veja todas as imagens disponíveis

Outra maneira de localizar uma imagem em um local é executar os comandos az vm image list-publishers, az vm image list-offers e az vm image list-skus em sequência. Com esses comandos, você determina estes valores:

  1. Liste os editores de imagem para um local. Neste exemplo, estamos observando a região Oeste dos EUA.

    az vm image list-publishers --location westus --output table
    
  2. Para um determinado editor, liste suas ofertas. Neste exemplo, você adiciona RedHat como o publicador.

    az vm image list-offers --location westus --publisher RedHat --output table
    
  3. Para uma determinada oferta, liste seus SKUs. Neste exemplo, você adiciona RHEL como a oferta.

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

Observação

A Canonical alterou os nomes de Oferta usados para as versões mais recentes. Antes do Ubuntu 20.04, o nome da Oferta é UbuntuServer. O nome da Oferta é 0001-com-ubuntu-server-focal para o Ubuntu 20.04 e 0001-com-ubuntu-server-jammy para o Ubuntu 22.04.

  1. Para um determinado editor, oferta e SKU, mostre todas as versões da imagem. Neste exemplo, você adiciona 9_1 como o SKU.

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

Passe esse valor da coluna URN com o parâmetro --image quando criar uma VM com o comando az vm create. Você também pode substituir o número da versão na URN por "latest" para usar a versão mais recente da imagem.

Se você implantar uma VM com um modelo do Gerenciador de Recursos, defina os parâmetros de imagem individualmente nas propriedades imageReference. Consulte a referência de modelo.

Verifique as informações do plano de compra

Algumas imagens de VM no Azure Marketplace têm licenças e termos de compra adicionais que você deve aceitar antes de implantá-las programaticamente.

Para implantar uma VM de uma imagem assim, você precisará aceitar os termos da imagem na primeira vez que usá-la, uma vez por assinatura. Você também precisará especificar os parâmetros do plano de compra para implantar uma VM dessa imagem

Para exibir as informações do plano de compra de uma imagem, execute o comando az vm image show com a URN da imagem. Se a propriedade plan na saída não for null, isso significa que a imagem tem termos que você precisa aceitar antes da implantação programática.

Por exemplo, a imagem Canonical Ubuntu Server 18.04 LTS não possui termos adicionais, porque a informação plan é null:

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

Saída:

{
  "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
}

Executar um comando semelhante para a imagem de RabbitMQ Certified by Bitnami mostra as seguintes plan propriedades: name, product e publisher. (Algumas imagens também têm uma propriedade promotion code.)

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

Saída:

{
  "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
}

Para implantar essa imagem, você precisa aceitar os termos e fornecer os parâmetros do plano de compra ao implantar uma VM usando essa imagem.

Aceitar os termos

Para exibir e aceitar os termos da licença, use o comando az vm image terms. Quando aceita os termos, você habilita a implantação programática na sua assinatura. Você só precisa aceitar os termos uma vez por assinatura para a imagem. Por exemplo:

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

A saída inclui um licenseTextLink para os termos da licença e indica que o valor de 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"
}

Para aceitar os termos, digite:

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

Implantar uma nova VM usando os parâmetros de imagem

Com informações sobre a imagem, você pode implantá-la usando o comando az vm create.

Para implantar uma imagem que não tem informações de plano, como a imagem mais recente do Ubuntu Server 18.04 da Canonical, passe a URN para --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

Para uma imagem com parâmetros de plano de compra, como o RabbitMQ Certified por imagem BitNami, você passa a URN para --image e também fornece os parâmetros do plano de compra:

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

Se você receber uma mensagem sobre como aceitar os termos da imagem, reveja a seção Aceitar os Termos. Verifique se a saída de az vm image accept-terms retorna o valor "accepted": true, mostrando que você aceitou os termos da imagem.

Usando um VHD existente com informações do plano de compra

Se você tiver um VHD existente que foi criado usando uma imagem do Azure Marketplace, talvez seja necessário fornecer as informações do plano de compra ao criar uma nova VM a partir desse VHD.

Se você ainda tiver a VM original ou outra VM criada na mesma imagem, você pode obter o nome do plano, o distribuidor e as informações do produto usando az vm get-instance-view. Este exemplo obtém uma VM chamada myVM no grupo de recursos myResourceGroup e, em seguida, exibe as informações do plano de compra.

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

Se você não tiver as informações de plano antes da exclusão da VM original, você pode registrar uma solicitação de suporte. Eles precisarão do nome da VM, do ID da assinatura e do carimbo de data/hora da operação de exclusão.

Depois de obter as informações do plano, você pode criar a nova VM usando o parâmetro --attach-os-disk para especificar o 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

Próximas etapas

Para criar uma máquina virtual rapidamente usando as informações de imagem, consulte Criar e gerenciar VMs do Linux usando a CLI do Azure.