Tutorial: Criar uma imagem personalizada de uma VM do Azure com o CLI do AzureTutorial: Create a custom image of an Azure VM with the Azure CLI

As imagens personalizadas são como imagens do marketplace, mas são criadas por si.Custom images are like marketplace images, but you create them yourself. 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.Custom images can be used to bootstrap configurations such as preloading applications, application configurations, and other OS configurations. Neste tutorial, vai criar a sua imagem personalizada de uma máquina virtual do Azure.In this tutorial, you create your own custom image of an Azure virtual machine. Saiba como:You learn how to:

  • Desaprovisionar e generalizar VMsDeprovision and generalize VMs
  • Criar uma imagem personalizadaCreate a custom image
  • Criar uma VM a partir de uma imagem personalizadaCreate a VM from a custom image
  • Listar todas as imagens na sua subscriçãoList all the images in your subscription
  • Eliminar uma imagemDelete an image

Utilizar o Azure Cloud ShellUse Azure Cloud Shell

O Azure hospeda Azure Cloud Shell, um ambiente de shell interativo que você pode usar por meio de seu navegador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell permite que você use bash o PowerShell ou o para trabalhar com os serviços do Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Você pode usar os comandos pré-instalados Cloud Shell para executar o código neste artigo sem precisar instalar nada em seu ambiente local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar o Azure Cloud Shell:To launch Azure Cloud Shell:

OpçãoOption Exemplo/linkExample/Link
Selecione Experimentar no canto superior direito de um bloco de código.Select Try It in the upper-right corner of a code block. A seleção de try não copia automaticamente o código para Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemplo de teste para Azure Cloud Shell
Vá para https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir Cloud Shell em seu navegador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell em uma nova janelaLaunch Cloud Shell in a new window
Selecione o botão Cloud Shell na barra de menus superior direita na portal do Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo em Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Iniciar Cloud Shell.Launch Cloud Shell.
  2. Selecione o botão copiar em um bloco de código para copiar o código.Select the Copy button on a code block to copy the code.
  3. Cole o código na sessão de Cloud shell com Ctrl+Shift+v no Windows e Linux, ou cmd+Shift+v no MacOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Pressione Enter para executar o código.Press Enter to run the code.

Se optar por instalar e utilizar a CLI localmente, este tutorial requer que execute uma versão da CLI do Azure que seja a 2.0.30 ou posterior.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install Azure CLI.

Antes de começarBefore you begin

Os passos abaixo detalham como tornar uma VM existente numa imagem personalizada reutilizável que pode utilizar para criar novas instâncias da VM.The steps below detail how to take an existing VM and turn it into a reusable custom image that you can use to create new VM instances.

Para concluir o exemplo neste tutorial, tem de ter uma máquina virtual existente.To complete the example in this tutorial, you must have an existing virtual machine. Se for preciso, este script de exemplo pode criar um para si.If needed, this script sample can create one for you. Quando trabalhar no tutorial, substitua o grupo de recursos e os nomes da VM sempre que preciso.When working through the tutorial, replace the resource group and VM names where needed.

Criar uma imagem personalizadaCreate a custom image

Para criar uma imagem de uma máquina virtual, tem de preparar a VM ao desaprovisionar, desalocar e, em seguida, marcar a VM de origem como generalizada.To create an image of a virtual machine, you need to prepare the VM by deprovisioning, deallocating, and then marking the source VM as generalized. Assim que a VM tiver sido preparada, pode criar uma imagem.Once the VM has been prepared, you can create an image.

Desaprovisionar a VMDeprovision the VM

O desaprovisionamento generaliza a VM ao remover informações específicas do computador.Deprovisioning generalizes the VM by removing machine-specific information. Esta generalização torna possível implementar várias VMs a partir de uma única imagem.This generalization makes it possible to deploy many VMs from a single image. Durante o desaprovisionamento, o nome do anfitrião é reposto para localhost.localdomain.During deprovisioning, the host name is reset to localhost.localdomain. Também são eliminadas as chaves de anfitrião do SSH, as configurações do servidor de nomes, a palavra-passe de raiz e as concessões DHCP em cache.SSH host keys, nameserver configurations, root password, and cached DHCP leases are also deleted.

Aviso

O desprovisionamento e a marcação da VM como generalizado tornarão a VM de origem inutilizável e não poderá ser reiniciada.Deprovisioning and marking the VM as generalized will make source VM unusable, and it cannot be restarted.

Para desaprovisionar a VM, utilize o agente da VM do Azure (waagent).To deprovision the VM, use the Azure VM agent (waagent). O agente da VM do Azure é instalado na VM e gere o aprovisionamento e a interação com o Controlador dos Recursos de Infraestrutura do Azure.The Azure VM agent is installed on the VM and manages provisioning and interacting with the Azure Fabric Controller. Para obter mais informações, veja o Guia de utilizador do Agente Linux do Azure.For more information, see the Azure Linux Agent user guide.

Ligue à VM atual através do SSH e execute o comando para desaprovisionar a VM.Connect to your VM using SSH and run the command to deprovision the VM. Com o argumento +user, a última conta de utilizador aprovisionada e quaisquer dados associados também são eliminados.With the +user argument, the last provisioned user account and any associated data are also deleted. Substitua o endereço IP de exemplo pelo endereço IP público da VM.Replace the example IP address with the public IP address of your VM.

SSH para a VM.SSH to the VM.

ssh azureuser@52.174.34.95

Desaprovisione a VM.Deprovision the VM.

sudo waagent -deprovision+user -force

Feche a sessão SSH.Close the SSH session.

exit

Desaloque e marque a VM como generalizadaDeallocate and mark the VM as generalized

Para criar uma imagem, a VM tem de ser desalocada.To create an image, the VM needs to be deallocated. Desaloque a VM com az vm deallocate.Deallocate the VM using az vm deallocate.

az vm deallocate --resource-group myResourceGroup --name myVM

Por fim, defina o estado da VM como generalizado com az vm generalize, para que a plataforma do Azure saiba que a VM foi generalizada.Finally, set the state of the VM as generalized with az vm generalize so the Azure platform knows the VM has been generalized. Pode criar apenas uma imagem a partir de uma VM generalizada.You can only create an image from a generalized VM.

az vm generalize --resource-group myResourceGroup --name myVM

Criar a imagemCreate the image

Já pode criar uma imagem da VM com az image create.Now you can create an image of the VM by using az image create. O exemplo seguinte cria uma imagem designada myImage a partir de uma VM designada myVM.The following example creates an image named myImage from a VM named myVM.

az image create \
    --resource-group myResourceGroup \
    --name myImage \
    --source myVM

Criar VMs a partir da imagemCreate VMs from the image

Agora que tem uma imagem, pode criar uma ou mais VMs novas a partir da imagem com az vm create.Now that you have an image, you can create one or more new VMs from the image using az vm create. O exemplo seguinte cria uma VM denominada myVMfromImage a partir de uma imagem denominada myImage.The following example creates a VM named myVMfromImage from the image named myImage.

az vm create \
    --resource-group myResourceGroup \
    --name myVMfromImage \
    --image myImage \
    --admin-username azureuser \
    --generate-ssh-keys

Gestão das imagensImage management

Seguem-se alguns exemplos de tarefas comuns de gestão de imagens e como concluí-las com a CLI do Azure.Here are some examples of common image management tasks and how to complete them using the Azure CLI.

Liste todas as imagens por nome num formato de tabela.List all images by name in a table format.

az image list \
    --resource-group myResourceGroup

Elimine uma imagem.Delete an image. Este exemplo elimina a imagem denominada myOldImage do myResourceGroup.This example deletes the image named myOldImage from the myResourceGroup.

az image delete \
    --name myOldImage \
    --resource-group myResourceGroup

Passos seguintesNext steps

Neste tutorial, criou uma imagem de VM personalizada.In this tutorial, you created a custom VM image. Aprendeu a:You learned how to:

  • Desaprovisionar e generalizar VMsDeprovision and generalize VMs
  • Criar uma imagem personalizadaCreate a custom image
  • Criar uma VM a partir de uma imagem personalizadaCreate a VM from a custom image
  • Listar todas as imagens na sua subscriçãoList all the images in your subscription
  • Eliminar uma imagemDelete an image

Avance para o próximo tutorial para saber mais sobre máquinas virtuais de elevada disponibilidade.Advance to the next tutorial to learn about highly available virtual machines.