Criar uma imagem gerenciada herdada de uma VM generalizada no Azure

Importante

Este artigo cobre a tecnologia de imagem gerenciada mais antiga. Para a tecnologia mais atual, os clientes são encorajados a usar a Galeria de Computação do Azure. Todos os novos recursos, como ARM64, Início Confiável e VM Confidencial são suportadas somente através da Galeria de Computação do Azure. Se você tiver um imagem gerenciada existente, você pode usá-la como fonte e criar uma imagem da Galeria de Computação do Azure. Para saber mais, consulte Criar uma definição de imagem e uma versão de imagem.

Depois de marcar uma VM como generalized no Azure, você não poderá reiniciar a VM.

Uma imagem gerenciada dá suporte a até 20 implantações simultâneas. A tentativa de criar simultaneamente mais de 20 VMs a partir da mesma imagem gerenciada pode exceder os tempos limite de provisionamento devido às limitações de desempenho de armazenamento de um único VHD. Para criar simultaneamente mais de 20 VMs, use uma imagem da Galeria de Computação do Azure (anteriormente conhecido como Galeria de Imagens Compartilhadas), configurada com uma réplica para cada 20 implantações simultâneas de VM.

Para obter informações de como as imagens gerenciadas são cobradas, confira Preços do Managed Disks.

Pré-requisitos

  • Você precisa de uma VM generalizada a fim de criar uma imagem.

CLI: criar uma imagem gerenciada herdada de uma VM

Criar uma imagem gerenciada da VM com az image create. O exemplo a seguir cria uma imagem chamada myImage no grupo de recursos denominado myResourceGroup usando o recurso VM denominado myVM.

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

Note

The image is created in the same resource group as your source VM. You can create VMs in any resource group within your subscription from this image. From a management perspective, you may wish to create a specific resource group for your VM resources and images.

If you are capturing an image of a generation 2 VM, also use the --hyper-v-generation V2 parameter. for more information, see Generation 2 VMs.

If you would like to store your image in zone-resilient storage, you need to create it in a region that supports availability zones and include the --zone-resilient true parameter.

This command returns JSON that describes the VM image. Save this output for later reference.

PowerShell: criar uma imagem gerenciada herdada de uma VM

Criar uma imagem diretamente da VM garante que a imagem inclua todos os discos associados à VM, incluindo o disco do sistema operacional e os discos de dados. Este exemplo mostra como criar uma imagem gerenciada de uma VM que usa discos gerenciados.

Antes de iniciar, confira se você tem a versão mais recente do módulo do Azure PowerShell. Para localizar a versão, execute Get-Module -ListAvailable Az no PowerShell. Se você precisar atualizar, confira Instalar o Azure PowerShell no Windows com o PowerShellGet. Se você estiver executando o PowerShell localmente, execute Connect-AzAccount para criar uma conexão com o Azure.

Observação

Se você quiser armazenar a imagem no armazenamento com redundância de zona, você precisará criá-la em uma região com suporte para zonas de disponibilidade e incluir o parâmetro -ZoneResilient na configuração da imagem (comando New-AzImageConfig).

Para criar uma imagem de VM, siga estas etapas:

  1. Defina algumas variáveis.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Verifique se a VM foi desalocada.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Defina o status da máquina virtual como Generalizado.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized
    
  4. Obtenha a máquina virtual.

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Crie a configuração de imagem.

    $image = New-AzImageConfig -Location $location -SourceVirtualMachineId $vm.Id 
    
  6. Crie a imagem.

    $imageName -ResourceGroupName $rgName
    

PowerShell: criar uma imagem gerenciada herdada a partir de um disco gerenciado

Se você quiser criar uma imagem somente do disco do sistema operacional, especifique a ID do disco gerenciado como o disco do sistema operacional:

  1. Defina algumas variáveis.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Obtenha a VM.

    $vm = Get-AzVm -Name $vmName -ResourceGroupName $rgName
    
  3. Obtenha a ID do disco gerenciado.

    $diskID = $vm.StorageProfile.OsDisk.ManagedDisk.Id
    
  4. Crie a configuração de imagem.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -ManagedDiskId $diskID
    
  5. Crie a imagem.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell: criar uma imagem gerenciada herdada a partir de um instantâneo

Você pode criar uma imagem gerenciada usando um instantâneo de uma VM generalizada seguindo estas etapas:

  1. Defina algumas variáveis.

    $rgName = "myResourceGroup"
    $location = "EastUS"
    $snapshotName = "mySnapshot"
    $imageName = "myImage"
    
  2. Crie o instantâneo.

    $snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName
    
  3. Crie a configuração de imagem.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -SnapshotId $snapshot.Id
    
  4. Crie a imagem.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell: criar uma imagem gerenciada legada a partir de uma VM que usa uma conta de armazenamento

Para criar uma imagem gerenciada de uma VM que não usa discos gerenciados, é necessário o URI do VHD do sistema operacional na conta de armazenamento, que está no seguinte formato: https://minhacontadearmazenamento.blob.core.windows.net/contêinervhd/nomedoarquivovhd.vhd. Neste exemplo, o VHD está em mystorageaccount, em um contêiner denominado vhdcontainer, e o nome do arquivo do VHD é vhdfilename.vhd.

  1. Defina algumas variáveis.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    $osVhdUri = "https://mystorageaccount.blob.core.windows.net/vhdcontainer/vhdfilename.vhd"
    
  2. Pare/desaloque a VM.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Marque a VM como generalizada.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized    
    
  4. Crie a imagem usando o VHD do sistema operacional generalizado.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -BlobUri $osVhdUri
    $image = New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

CLI: criar uma VM a partir de uma imagem gerenciada herdada

Criar uma VM usando a imagem criada com criar vm az. O exemplo a seguir cria uma VM denominada myVMDeployed da imagem denominada myImage.

az vm create \
  --resource-group myResourceGroup \
  --name myVMDeployed \
  --image myImage\
  --admin-username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

CLI: criar uma VM em outro grupo de recursos a partir de uma imagem gerenciada herdada

Com os discos gerenciados, você pode criar VMs de uma imagem em qualquer grupo de recursos em sua assinatura. Para criar uma máquina virtual em um grupo de recursos diferente do da imagem, especifique a ID de recurso completa para a imagem. Use az image list para exibir uma lista de imagens. A saída deverá ser semelhante ao seguinte exemplo:

"id":
"/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
"location": "westus", "name": "myImage",

O exemplo a seguir usa criar vm az para criar uma VM em um grupo de recursos que não seja a imagem de origem, especificando a ID do recurso de imagem.

az vm create \
  --resource-group myOtherResourceGroup \
  --name myOtherVMDeployed \
  --image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
  --admin-username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Portal: criar uma VM a partir de uma imagem gerenciada herdada

Criar uma VM no Azure: localize a imagem no portal, escolha "Criar VM", preencha os detalhes, selecione o tamanho, ajuste as configurações e implante.

  1. Acesse o portal do Azure para localizar uma imagem gerenciada. Pesquise e selecione Imagens.

  2. Selecione a imagem que você deseja usar a partir da lista. A imagem da página Visão geral será aberta.

  3. Clique em Criar VM no menu.

  4. Insira as informações da máquina virtual. O nome do usuário e a senha inseridos aqui serão usados para fazer logon na máquina virtual. Quando concluir, selecione OK. Você pode criar a nova VM em um grupo de recursos existente ou escolher Criar novo para criar um novo grupo de recursos para armazenar a VM.

  5. Selecione um tamanho para a VM. Para ver mais tamanhos, selecione Exibir todos os ou altere o filtro Tipo de disco com suporte.

  6. Em Configurações, faça as alterações necessárias e selecione OK.

  7. Na página de resumo, você deve ver o nome da sua imagem listado como uma Imagem privada. Selecione OK para iniciar a implantação da máquina virtual.

PowerShell: crie uma VM a partir de uma imagem gerenciada herdada

Você pode usar o PowerShell para criar uma VM por meio de uma imagem usando o conjunto de parâmetro simplificado definido para o novo cmdlet do New-AzVm. A imagem precisa estar no mesmo grupo de recursos no qual você criará a VM.

O parâmetro simplificado definido para New-AzVm requer apenas que você forneça um nome, um grupo de recursos e o nome da imagem para criar uma VM de uma imagem. New-AzVm usará o valor do parâmetro -Name como o nome de todos os recursos que cria automaticamente. Neste exemplo, fornecemos nomes mais detalhados para cada recurso, mas permitimos ao cmdlet criá-los automaticamente. Você também pode criar recursos, como a rede virtual, antecipadamente e passar o nome do recurso para o cmdlet. New-AzVm usará os recursos existentes se puder encontrá-los pelo nome.

O exemplo a seguir cria uma máquina virtual chamada myVMFromImage, no grupo de recursos myResourceGroup, na imagem chamada myImage.

New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVMfromImage" `
    -ImageName "myImage" `
    -Location "East US" `
    -VirtualNetworkName "myImageVnet" `
    -SubnetName "myImageSubnet" `
    -SecurityGroupName "myImageNSG" `
    -PublicIpAddressName "myImagePIP" 

Próxima etapa