Criar uma imagem gerida legada de uma VM generalizada no Azure

Importante

Este artigo aborda a tecnologia de imagem gerenciada mais antiga. Para a tecnologia mais atual, os clientes são incentivados a usar a Galeria de Computação do Azure. Todos os novos recursos, como ARM64, Inicialização Confiável e VM Confidencial são suportados apenas por meio da Galeria de Computação do Azure. Se você tiver uma imagem gerenciada existente, poderá usá-la como fonte e criar uma imagem da Galeria de Computação do Azure. Para obter mais informações, consulte Criar uma definição e uma versão de imagem.

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

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

Para obter informações sobre como as imagens gerenciadas são cobradas, consulte Preços de discos gerenciados.

Pré-requisitos

CLI: Criar uma imagem gerenciada herdada de uma VM

Crie uma imagem gerenciada da VM com az image create. O exemplo a seguir cria uma imagem chamada myImage no grupo de recursos chamado myResourceGroup usando o recurso VM chamado 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 quaisquer discos de dados. Este exemplo mostra como criar uma imagem gerenciada a partir de uma VM que usa discos gerenciados.

Antes de começar, verifique 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, consulte Instalar o Azure PowerShell no Windows com PowerShellGet. Se você estiver executando o PowerShell localmente, execute Connect-AzAccount para criar uma conexão com o Azure.

Nota

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

Para criar uma imagem VM, siga estes passos:

  1. Crie algumas variáveis.

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

    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 da 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 apenas do disco do sistema operacional, especifique o ID do disco gerenciado como o disco do sistema operacional:

  1. Crie 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 da 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 a partir de um instantâneo de uma VM generalizada seguindo estas etapas:

  1. Crie algumas variáveis.

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

    $snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName
    
  3. Crie a configuração da 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 herdada de uma VM que usa uma conta de armazenamento

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

  1. Crie algumas variáveis.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    $osVhdUri = "https://mystorageaccount.blob.core.windows.net/vhdcontainer/vhdfilename.vhd"
    
  2. Parar/desalocar 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 generalizado do sistema operacional.

    $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

Crie uma VM usando a imagem que você criou com az vm create. O exemplo a seguir cria uma VM chamada myVMDeployed a partir da imagem chamada 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

Você pode criar VMs a partir de uma imagem em qualquer grupo de recursos dentro da sua assinatura. Para criar uma VM em um grupo de recursos diferente da imagem, especifique o ID completo do recurso para sua imagem. Use az image list para visualizar uma lista de imagens. O resultado será semelhante ao seguinte exemplo.

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

O exemplo a seguir usa az vm create para criar uma VM em um grupo de recursos diferente da imagem de origem, especificando o 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: Encontre a imagem no portal, escolha 'Criar VM', preencha os detalhes, selecione o tamanho, ajuste as configurações e implante.

  1. Vá para o portal do Azure para encontrar uma imagem gerenciada. Pesquise e selecione Imagens.

  2. Selecione a imagem que deseja usar na lista. A página Visão geral da imagem é aberta.

  3. Selecione Criar VM no menu.

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

  5. Selecione um tamanho para a VM. Para ver mais tamanhos, selecione Visualizar todos ou altere o filtro Tipo de disco suportado.

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

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

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

Você pode usar o PowerShell para criar uma VM a partir de uma imagem usando o conjunto de parâmetros simplificado para o cmdlet New-AzVm . A imagem precisa estar no mesmo grupo de recursos onde você criará a VM.

O conjunto de parâmetros simplificado para New-AzVm requer apenas que você forneça um nome, grupo de recursos e nome de imagem para criar uma VM a partir de uma imagem. New-AzVm usará o valor do parâmetro -Name como o nome de todos os recursos criados automaticamente. Neste exemplo, fornecemos nomes mais detalhados para cada um dos recursos, mas permitimos que o cmdlet os crie automaticamente. Você também pode criar recursos antecipadamente, como a rede virtual, 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 VM chamada myVMFromImage, no grupo de recursos myResourceGroup , a partir da imagem chamada myImage.

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

Próximo passo