Tutorial: Criar uma imagem personalizada de uma VM do Azure com a CLI do Azure

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

As imagens personalizadas são como imagens do marketplace, mas são criadas por si. As imagens personalizadas podem ser utilizadas para configurações do programa de arranque do sistema, como o pré-carregamento de aplicações, configurações de aplicação e outras configurações do SO. Neste tutorial, vai criar a sua imagem personalizada de uma máquina virtual do Azure. Saiba como:

  • Criar uma Galeria de Computação do Azure (anteriormente conhecida como Shared Image Gallery)
  • Criar uma definição de imagem
  • Criar uma versão de imagem
  • Criar uma VM a partir de uma imagem
  • Partilhar uma galeria

Este tutorial utiliza a CLI na Cloud Shell do Azure, que é constantemente atualizada para a versão mais recente. Para abrir a Cloud Shell, selecione Experimentar na parte superior de qualquer bloco de código.

Se optar por instalar e utilizar a CLI localmente, este tutorial requer a execução da versão 2.35.0 ou posterior da CLI do Azure. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Descrição Geral

Uma Galeria de Computação do Azure simplifica a partilha de imagens personalizada na sua organização. As imagens personalizadas são como imagens do marketplace, mas são criadas por si. As imagens personalizadas podem ser utilizadas para configurações do programa de arranque do sistema, como o pré-carregamento de aplicações, configurações de aplicação e outras configurações do SO.

A Galeria de Computação do Azure permite-lhe partilhar as suas imagens de VM personalizadas com outras pessoas. Escolha as imagens que pretende partilhar, as regiões em que pretende que estejam disponíveis e com quem pretende partilhá-las.

A funcionalidade Galeria de Computação do Azure tem vários tipos de recursos:

Recurso Descrição
Origem da imagem Este é um recurso que pode ser utilizado para criar uma versão de imagem numa galeria. Uma origem de imagem pode ser uma VM do Azure existente generalizada ou especializada, uma imagem gerida, um instantâneo ou uma versão de imagem noutra galeria.
Galeria Tal como o Azure Marketplace, uma galeria é um repositório para gerir e partilhar imagens e aplicações de VM, mas controla quem tem acesso.
Definição de imagem As definições de imagem são criadas numa galeria e transportam informações sobre a imagem e os requisitos para utilizá-la internamente. Isto inclui se a imagem é Windows ou Linux, notas de versão e requisitos mínimos e máximos de memória. É uma definição de um tipo de imagem.
Versão da imagem Uma versão de imagem é o que utiliza para criar uma VM ao utilizar uma galeria. Pode ter várias versões de uma imagem conforme necessário para o seu ambiente. Tal como uma imagem gerida, quando utiliza uma versão de imagem para criar uma VM, a versão da imagem é utilizada para criar novos discos para a VM. As versões de imagens podem ser utilizadas várias vezes.

Antes de começar

Os passos seguintes mostram como utilizar uma VM existente e transformá-la numa imagem personalizada reutilizável que pode utilizar para criar novas instâncias de VM.

Para concluir o exemplo neste tutorial, tem de ter uma máquina virtual existente. Se necessário, pode ver o início rápido da CLI para criar uma VM para utilizar neste tutorial. Ao trabalhar no tutorial, substitua os nomes dos recursos sempre que necessário.

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e prima Enter para executá-lo.

Uma galeria é o recurso principal utilizado para ativar a partilha de imagens.

Os carateres permitidos para o nome da galeria são letras maiúsculas ou minúsculas, dígitos, pontos e pontos. O nome da galeria não pode conter travessões. Os nomes das galerias têm de ser exclusivos na sua subscrição.

Crie uma galeria com az sig create. O exemplo seguinte cria um grupo de recursos com o nome galeria com o nome myGalleryRG nos E.U.A. Leste e uma galeria com o nome myGallery.

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

Obter informações sobre a VM

Pode ver uma lista de VMs que estão disponíveis com az vm list.

az vm list --output table

Assim que souber o nome da VM e o grupo de recursos em que se encontra, obtenha o ID da VM com az vm get-instance-view.

az vm get-instance-view -g MyResourceGroup -n MyVm --query id

Copie o ID da VM para utilizar mais tarde.

Criar uma definição de imagem

As definições de imagem criam um agrupamento lógico para imagens. São utilizados para gerir informações sobre as versões de imagem que são criadas nas mesmas.

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

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

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

Neste exemplo, a definição da imagem tem o nome myImageDefinition e destina-se a uma imagem especializada do SO Linux.

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

Copie o ID da definição da imagem do resultado para utilizar mais tarde.

Criar a versão da imagem

Crie uma versão de imagem a partir da VM com az sig image-version create.

Os carateres permitidos para a versão da imagem são números e pontos finais. Os números têm de estar dentro do intervalo de um número inteiro de 32 bits. Formato: MajorVersion. MinorVersion. Patch.

Neste exemplo, a versão da nossa imagem é a 1.0.0 e vamos criar duas réplicas na região E.U.A. Centro-Oeste , uma réplica na região E.U.A. Centro-Sul e uma réplica na região E.U.A . Leste 2 com armazenamento com redundância entre zonas. As regiões de replicação têm de incluir a região onde a VM de origem está localizada.

Substitua o valor de --managed-image neste exemplo pelo ID da VM do passo anterior.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
   --replica-count 2 \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Nota

Tem de esperar que a versão da imagem termine completamente a compilação e a replicação antes de poder utilizar a mesma imagem gerida para criar outra versão de imagem.

Também pode armazenar a sua imagem no armazenamento Premium ao adicionar --storage-account-type premium_lrs, ou Armazenamento Com Redundância entre Zonas , adicionando --storage-account-type standard_zrs quando cria a versão da imagem.

Criar a VM

Crie a VM com az vm create com o --specialized parâmetro para indicar que a imagem é uma imagem especializada.

Utilize o ID de definição de imagem para --image para criar a VM a partir da versão mais recente da imagem que está disponível. Também pode criar a VM a partir de uma versão específica ao fornecer o ID da versão da imagem para --image.

Neste exemplo, estamos a criar uma VM a partir da versão mais recente da imagem myImageDefinition .

az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
    --name myVM2 \
    --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
    --specialized

Pode partilhar imagens entre subscrições com o controlo de acesso baseado em funções do Azure (RBAC do Azure). Pode partilhar imagens ao nível da galeria, definição de imagem ou versão da imagem. Qualquer utilizador que tenha permissões de leitura para uma versão de imagem, mesmo entre subscrições, poderá implementar uma VM com a versão da imagem.

Recomendamos que partilhe com outros utilizadores ao nível da galeria. Para obter o ID de objeto da galeria, utilize az sig show.

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

Utilize o ID do objeto como um âmbito, juntamente com um endereço de e-mail e az role assignment create para dar a um utilizador acesso à Galeria de Computação do Azure. Substitua <email-address> e <gallery iD> pelas suas próprias informações.

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

Para obter mais informações sobre como partilhar recursos com o RBAC do Azure, veja Adicionar ou remover atribuições de funções do Azure com a CLI do Azure.

Azure Image Builder

O Azure também oferece um serviço, criado com base no Packer, Azure VM Image Builder. Descreva as suas personalizações num modelo e irá processar a criação da imagem.

Passos seguintes

Neste tutorial, criou uma imagem de VM personalizada. Aprendeu a:

  • Criar uma Galeria de Computação do Azure
  • Criar uma definição de imagem
  • Criar uma versão de imagem
  • Criar uma VM a partir de uma imagem
  • Partilhar uma galeria

Avance para o próximo tutorial para saber mais sobre Conjuntos de Dimensionamento de Máquinas Virtuais.