Tutorial: Criar uma imagem personalizada de uma VM do Azure com a CLI do Azure
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
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. Neste tutorial, você criará sua própria imagem personalizada de uma máquina virtual do Azure. Você aprenderá 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 de uma imagem
- Compartilhar uma galeria
Este tutorial usa a CLI dentro do Azure Cloud Shell, que é constantemente atualizada para a versão mais recente. Para abrir o Cloud Shell, selecione Experimentar na parte superior de um bloco de código qualquer.
Se você optar por instalar e usar a CLI localmente, este tutorial exigirá a execução da CLI do Azure versão 2.35.0 ou posterior. Execute az --version
para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
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.
O recurso da Galeria de Computação do Azure tem vários tipos de recursos:
Recurso | Descrição |
---|---|
Origem da imagem | Este é um recurso que pode ser usado para criar uma versão da imagem em uma galeria. Uma origem de imagem pode ser uma VM do Azure existente generalizada ou especializada, uma imagem gerenciada, um instantâneo ou uma versão de imagem em outra galeria. |
Galeria | Assim como o Azure Marketplace, uma galeria é um repositório para gerenciar e compartilhar imagens e aplicativos de VM, mas você controla quem tem acesso. |
Definição da imagem | As definições de imagem são criadas dentro de uma galeria e transportam informações sobre a imagem e os requisitos para usá-la internamente. Isso inclui se a imagem é Windows ou Linux, notas sobre a 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 da imagem é usada para criar uma VM ao usar uma galeria. Você pode ter diversas versões de uma imagem conforme necessário para seu ambiente. Como uma imagem gerenciada, quando você usa uma versão da imagem para criar uma VM, a versão da imagem é usada para criar novos discos para a VM. 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, você deverá ter uma máquina virtual. Se necessário, confira 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 se necessário.
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole o código no Cloud Shell e depois pressione Enter para executá-lo.
Criar uma galeria
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 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 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
Obter informações sobre a VM
Você pode ver uma lista das VMs disponíveis usando az vm list.
az vm list --output table
Quando souber o nome da VM e em qual 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 VM para usar mais tarde.
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.
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.
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 a ID da definição da imagem da saída para usar mais tarde.
Criar a versão da imagem
Crie uma versão de imagem da VM usando az sig image-version create.
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 criaremos duas réplicas na região do Centro-Oeste dos EUA, uma na região Centro-Sul dos EUA e uma na região Leste dos EUA 2 usando o armazenamento com redundância de zona. 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 "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
--replica-count 2 \
--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 a VM
Crie a VM usando az vm 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 a VM com base na versão mais recente da imagem que está disponível. Você também pode criar a VM com base em uma versão específica fornecendo a ID de versão da imagem de --image
.
Neste exemplo, estamos criando uma VM com base na 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
Compartilhar a galeria
Você pode compartilhar imagens entre assinaturas usando o Azure RBAC (controle de acesso baseado em função do Azure). Você pode compartilhar imagens no nível da galeria, da definição da imagem e da 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 e–mail e az role assignment create para conceder a um usuário acesso à Galeria de Computação do Azure. 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.
Construtor de Imagens do Azure
O Azure também oferece um serviço integrado ao Packer, o Construtor de Imagens de VM do Azure. Descreva suas personalizações em um modelo e ele cuidará da criação da imagem.
Próximas etapas
Neste tutorial, você criou uma imagem de VM personalizada. Você 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 de uma imagem
- Compartilhar uma galeria
Avance para o próximo tutorial para saber mais sobre os Conjuntos de Dimensionamento de Máquinas Virtuais.