Tutorial: criar e usar uma imagem personalizada para Conjuntos de Dimensionamento de Máquinas Virtuais com a CLI do Azure

Ao criar um conjunto de dimensionamento, você especifica uma imagem a ser usada quando as instâncias de VM forem implantadas. Para reduzir a quantidade de tarefas depois que as instâncias de VM forem implantadas, é possível usar uma imagem de VM personalizada. Esta imagem de VM personalizada inclui todas as instalações ou configurações de aplicativo necessárias. Todas as instâncias de VM criadas no conjunto de dimensionamento usam a imagem de VM personalizada e estão prontas para atender ao tráfego do aplicativo. Neste tutorial, você aprenderá a:

  • Criar uma Galeria de Computação do Azure
  • Criar uma definição de imagem especializada
  • Criar uma versão de imagem
  • Criar um conjunto de dimensionamento com base em uma imagem personalizada
  • Compartilhar uma galeria de imagens

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Este artigo exige a versão 2.4.0 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Visão geral

Uma Galeria de Computação do Azure simplifica o compartilhamento da imagem personalizada em sua organização. Imagens personalizadas são como imagens do marketplace, mas você mesmo as cria. As imagens personalizadas podem ser usadas para configurações de inicialização como o pré-carregamento de aplicativos, configurações de aplicativos e outras configurações do sistema operacional.

A Galeria de Computação do Azure permite que você compartilhe suas imagens de VM personalizadas com outras pessoas. Escolha quais imagens você deseja compartilhar, em quais regiões deseja torná-las disponíveis e com quem deseja compartilhá-las.

Criar e configurar uma VM de origem

Primeiro, crie um grupo de recursos com az group create; em seguida, crie uma VM com az vm create. Essa VM é usada como a origem da imagem. O exemplo abaixo inicia uma VM chamada myVM no grupo de recursos chamado 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

Importante

A ID da VM é mostrada na saída do comando az vm create. Copie-a em um lugar seguro para usá-la mais tarde neste tutorial.

Uma galeria de imagens é o principal recurso usado para habilitar o compartilhamento de imagens.

Caracteres permitidos para o nome da galeria são letras maiúsculas ou minúsculas, dígitos, pontos e pontos finais. O nome da galeria não pode conter traços. Os nomes das galerias devem ser exclusivos dentro de sua assinatura.

Criar uma galeria de imagens usando az sig create. O exemplo a seguir cria um grupo de recursos da galeria chamado myGalleryRG no Leste dos EUA, bem como uma galeria chamada myGallery.

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

Criar uma definição de imagem

As definições de imagem criam um agrupamento lógico para as imagens. Elas são usadas para gerenciar informações sobre as versões da imagem que são criadas dentro delas.

Os nomes das definições de imagem podem ser compostos por letras maiúsculas ou minúsculas, dígitos, pontos, traços e pontos finais.

Verifique se a definição da imagem é do tipo correto. Se tiver generalizado a VM (usando o Sysprep para Windows ou waagent -deprovision para Linux), você precisará criar uma definição de imagem generalizada usando --os-state generalized. Se quiser usar a VM sem remover contas de usuário existentes, crie uma definição de imagem especializada usando --os-state specialized.

Para obter mais informações sobre os valores que pode especificar para uma definição de imagem, confira Definições de imagem.

Crie uma definição de imagem na galeria usando az sig image-definition create.

Neste exemplo, a definição da imagem se chama myImageDefinition e é referente a uma imagem especializada do SO Linux. Para criar uma definição para imagens usando um SO Windows, use --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

Importante

A ID da definição da imagem é mostrada na saída do comando. Copie-a em um lugar seguro para usá-la mais tarde neste tutorial.

Criar a versão da imagem

Crie uma versão da imagem com base na VM usando az image gallery create-image-version.

Caracteres permitidos para a versão da imagem são números e pontos. Os números devem estar dentro do intervalo de um inteiro de 32 bits. Formato: MajorVersion.MinorVersion.Patch.

Neste exemplo, a versão de nossa imagem é 1.0.0 e vamos criar uma réplica na região Centro-Sul dos EUA e uma na região Leste dos EUA 2. As regiões de replicação precisam incluir a região em que a VM de origem fica localizada.

Substitua o valor de --managed-image neste exemplo pela ID da VM da etapa anterior.

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"

Observação

Você precisa esperar que a versão da imagem seja compilada e replicada completamente antes de poder usar a mesma imagem gerenciada para criar outra versão da imagem.

Você também pode armazenar a imagem no armazenamento Premium adicionando --storage-account-type premium_lrs, ou no Armazenamento com redundância de zona adicionando --storage-account-type standard_zrs ao criar a versão da imagem.

Criar um conjunto de dimensionamento com base na imagem

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft

Criar um conjunto de dimensionamento com base na uma imagem especializada usando az vmss create.

Crie o conjunto de dimensionamento usando az vmss create e o parâmetro --specialized para indicar que se trata de uma imagem especializada.

Use a ID de definição de imagem de --image para criar as instâncias do conjunto de dimensionamento com base na versão mais recente da imagem que está disponível. Você também pode criar as instâncias do conjunto de dimensionamento com base em uma versão específica fornecendo a ID de versão da imagem de --image.

Crie um conjunto de dimensionamento chamado myScaleSet com base na versão mais recente da imagem myImageDefinition que criamos anteriormente.

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

Leva alguns minutos para criar e configurar todos os recursos e as VMs do conjunto de dimensionamento.

Você pode compartilhar imagens entre assinaturas usando o Azure RBAC (controle de acesso baseado em função do Azure). Você pode compartilhar imagens na galeria, na definição da imagem ou na versão da imagem. Qualquer usuário que tenha permissões de leitura para uma versão de imagem, mesmo entre assinaturas, poderá implantar uma VM usando a versão da imagem.

Recomendamos que você compartilhe com outros usuários no nível da galeria. Para obter a ID do objeto da galeria, use az sig show.

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

Use a ID do objeto como um escopo, juntamente com um endereço de email e az role assignment create para conceder a um usuário acesso à galeria de imagens compartilhadas. Substitua <email-address> e <gallery iD> pelas suas informações.

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

Para obter mais informações sobre como compartilhar recursos usando o Azure RBAC, confira Adicionar ou remover atribuições de função do Azure usando a CLI do Azure.

Limpar os recursos

Para remover o conjunto de dimensionamento e outros recursos, exclua o grupo de recursos e todos os seus recursos com az group delete. O parâmetro --no-wait retorna o controle ao prompt sem aguardar a conclusão da operação. O parâmetro --yes confirma que você deseja excluir os recursos sem um prompt adicional para fazer isso.

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

Próximas etapas

Neste tutorial, você aprendeu a criar e usar uma imagem de VM personalizada para seus conjuntos de dimensionamento com a CLI 2.0 do Azure:

  • Criar uma Galeria de Computação do Azure
  • Criar uma definição de imagem especializada
  • Criar uma versão de imagem
  • Criar um conjunto de dimensionamento com base em uma imagem personalizada
  • Compartilhar uma galeria de imagens

Siga para o próximo tutorial para saber como implantar aplicativo ao seu conjunto de dimensionamento.