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

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

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. Sabe como:

  • Criar uma Galeria de Computação do Azure (anteriormente conhecida como Galeria de Imagens Compartilhadas)
  • 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 usa a CLI no Azure Cloud Shell, que é constantemente atualizado para a versão mais recente. Para abrir o Cloud Shell, selecione Experimentar na parte superior de qualquer bloco de código.

Se você optar por instalar e usar a CLI localmente, este tutorial exigirá que você esteja executando a CLI do Azure versão 2.35.0 ou posterior. 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 o compartilhamento de imagens personalizadas em toda a 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 que você compartilhe suas imagens de VM personalizadas com outras pessoas. Escolha as imagens que pretende partilhar, em que regiões pretende que estejam disponíveis e com quem pretende partilhá-las.

O recurso Galeria de Computação do Azure tem vários tipos de recursos:

Recurso Description
Fonte da imagem Este é um recurso que pode ser usado para criar uma versão de imagem em uma galeria. Uma fonte de imagem pode ser uma VM do Azure existente que é generalizada ou especializada, uma imagem gerenciada, um instantâneo ou uma versão de imagem em outra galeria.
Galeria Como o Azure Marketplace, uma galeria é um repositório para gerenciar e compartilhar imagens e aplicativos VM, mas você controla quem tem acesso.
Definição de imagem As definições de imagem são criadas dentro de uma galeria e carregam informações sobre a imagem e os requisitos para usá-la internamente. Isso 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 você usa para criar uma VM ao usar uma galeria. Você pode ter várias versões de uma imagem conforme necessário para seu ambiente. Como uma imagem gerenciada, quando você usa uma versão de imagem para criar uma VM, a versão da imagem é usada para criar novos discos para a VM. As versões de imagem podem ser usadas várias vezes.

Antes de começar

As etapas a seguir mostram como pegar uma VM existente e transformá-la em uma imagem personalizada reutilizável que você pode usar para criar novas instâncias de VM.

Para concluir o exemplo neste tutorial, tem de ter uma máquina virtual existente. Se necessário, você pode ver o início rápido da CLI para criar uma VM a ser usada neste tutorial. Ao trabalhar no tutorial, substitua os nomes dos recursos onde 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 Experimentar 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 principal recurso usado para habilitar o compartilhamento de imagens.

Os caracteres 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 traços. Os nomes das galerias devem ser exclusivos na sua assinatura.

Crie uma galeria usando az sig create. O exemplo a seguir cria um grupo de recursos chamado gallery chamado myGalleryRG no Leste dos EUA e uma galeria chamada myGallery.

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

Obter informações sobre a VM

Você pode ver uma lista de VMs que estão disponíveis usando az vm list.

az vm list --output table

Depois de saber o nome da VM e em que grupo de recursos ela está, obtenha a ID da VM usando az vm get-instance-view.

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

Copie a ID da sua VM para usar mais tarde.

Criar uma definição de imagem

As definições de imagem criam um agrupamento lógico para imagens. Eles são usados para gerenciar informações sobre as versões de imagem que são criadas neles.

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

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

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

Neste exemplo, a definição de imagem é chamada myImageDefinition e é para uma imagem especializada do sistema operacional 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 de imagem da saída para usar mais tarde.

Criar a versão da imagem

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

Os 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.Versão Menor.Adesivo.

Neste exemplo, a versão da nossa imagem é 1.0.0 e vamos criar duas réplicas na região Centro-Oeste dos EUA , uma réplica na região Centro-Sul dos EUA e uma réplica na região Leste dos EUA 2 usando armazenamento com redundância de zona. As regiões de replicação devem incluir a região em que a VM de origem está localizada.

Substitua o valor de --managed-image neste exemplo pela ID da sua 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 "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
   --replica-count 2 \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Nota

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

Você também pode armazenar sua imagem no armazenamento Premium adicionando --storage-account-type premium_lrsou no Armazenamento com Redundância de Zona adicionando --storage-account-type standard_zrs quando criar a versão da imagem.

Criar a VM

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

Use o ID de definição de imagem para --image para criar a VM a partir da versão mais recente da imagem disponível. Você também pode criar a VM a partir de uma versão específica fornecendo o ID da versão da imagem para --image.

Neste exemplo, estamos criando 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

Você pode compartilhar imagens entre assinaturas usando o controle de acesso baseado em função do Azure (Azure RBAC). Você pode compartilhar imagens na galeria, definição de imagem ou nível de 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 de imagem.

Recomendamos que você compartilhe com outros usuários no nível da galeria. Para obter o ID do objeto da sua 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 uma atribuição de função az create para dar a um usuário acesso à Galeria de Computação do Azure. Substitua <email-address> e <gallery iD> com as suas próprias 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 RBAC do Azure, consulte Adicionar ou remover atribuições de função do Azure usando a CLI do Azure.

Azure Image Builder

O Azure também oferece um serviço, baseado no Packer, Azure VM Image Builder. Descreva suas personalizações em um modelo e ele lidará com a criação da imagem.

Próximos passos

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 aprender sobre Conjuntos de Escala de Máquina Virtual.