Atualização no local para VMs com o Windows Server no Azure

Uma atualização no local permite-lhe passar de um sistema operativo mais antigo para um mais recente, ao manter as definições, funções de servidor e dados intactos. Este artigo ensina como mover suas VMs do Azure para uma versão posterior do Windows Server usando uma atualização in-loco. Atualmente, há suporte para a atualização para o Windows Server 2012, Windows Server 2016, Windows Server 2019 e Windows Server 2022.

Antes de iniciar uma atualização no local:

  • Veja os requisitos da atualização para o sistema operativo de destino:

    • Opções de atualização para o Windows Server 2012 a partir do Windows Server 2008 (64 bits) ou Windows Server 2008 R2

    • Opções de atualização para o Windows Server 2016 do Windows Server 2012 ou do Windows Server 2012 R2

    • Opções de atualização para o Windows Server 2019 do Windows Server 2012 R2 ou do Windows Server 2016

    • Opções de atualização para o Windows Server 2022 do Windows Server 2016 ou do Windows Server 2019

  • Verifique se o disco do sistema operativo tem espaço livre suficiente para realizar a atualização no local. Se for necessário mais espaço, siga estas etapas para expandir o disco do sistema operacional conectado à VM.

  • Desative o software antivírus e anti-spyware e as firewalls. Estes tipos de software podem entrar em conflito com o processo de atualização. Reative o software antivírus e anti-spyware e as firewalls após a conclusão da atualização.

Atualizar VM para licença de volume (ativação do servidor KMS)

A mídia de atualização fornecida pelo Azure exige que a VM seja configurada para licenciamento por volume do Windows Server. Esse é o comportamento padrão para qualquer VM do Windows Server que foi instalada a partir de uma imagem generalizada no Azure. Se a VM foi importada para o Azure, talvez seja necessário convertê-la em licenciamento por volume para usar a mídia de atualização fornecida pelo Azure. Para confirmar se a VM está configurada para ativação de licença por volume, siga estas etapas para configurar a chave de configuração do cliente KMS apropriada. Se a configuração de ativação foi alterada, siga estas etapas para verificar a conectividade com o serviço KMS do Azure.

Atualizar para discos gerenciados

O processo de atualização in-loco requer o uso de Managed Disks na VM a ser atualizada. A maioria das VMs no Azure está usando Managed Disks, e a desativação do suporte a discos não gerenciados foi anunciada em novembro de 2022. Se a VM estiver usando discos não gerenciados, siga estas etapas para migrar para Managed Disks.

Criar instantâneo do disco do sistema operacional

Recomendamos que você crie um instantâneo do disco do sistema operacional e de quaisquer discos de dados antes de iniciar o processo de atualização in-loco. Isso permite que você reverta para o estado anterior da VM se algo falhar durante o processo de atualização in-loco. Para criar um instantâneo em cada disco, siga estas etapas para criar um instantâneo de um disco.

Criar disco de mídia de atualização

Para iniciar uma atualização in-loco, a mídia de atualização deve ser anexada à VM como um Disco Gerenciado. Para criar a mídia de atualização, modifique as variáveis no seguinte script do PowerShell para Windows Server 2022. O disco de mídia de atualização pode ser usado para atualizar várias VMs, mas só pode ser usado para atualizar uma única VM de cada vez. Para atualizar várias VMs simultaneamente, vários discos de atualização devem ser criados para cada atualização simultânea.

Parâmetro Definição
resourceGroup Nome do grupo de recursos onde a mídia de atualização Managed Disk será criada. O grupo de recursos nomeado é criado se não existir.
localização Região do Azure onde a mídia de atualização Managed Disk é criada. Essa deve ser a mesma região da VM a ser atualizada.
zona Zona do Azure na região selecionada onde a mídia de atualização Managed Disk será criada. Esta deve ser a mesma zona que a VM a ser atualizada. Para VMs regionais (não zonais), o parâmetro zone deve ser "".
nome_do_disco Nome do disco gerenciado que conterá a mídia de atualização
sku Versão de mídia de atualização do Windows Server. Deve ser: server2016Upgrade ou server2019Upgrade ou server2022Upgradeserver2012Upgrade

Se você tiver mais de uma assinatura, deverá executar Set-AzContext -Subscription '<subscription name or id> para especificar qual assinatura usar.

Script do PowerShell

#
# Customer specific parameters


# Resource group of the source VM
$resourceGroup = "WindowsServerUpgrades"

# Location of the source VM
$location = "WestUS2"

# Zone of the source VM, if any
$zone = "" 

# Disk name for the that will be created
$diskName = "WindowsServer2022UpgradeDisk"

# Target version for the upgrade - must be either server2022Upgrade, server2019Upgrade, server2016Upgrade or server2012Upgrade
$sku = "server2022Upgrade"


# Common parameters

$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "Standard_LRS"

#
# Get the latest version of the special (hidden) VM Image from the Azure Marketplace

$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version	}
$latestString = $versions[0].Version


# Get the special (hidden) VM Image from the Azure Marketplace by version - the image is used to create a disk to upgrade to the new version


$image = Get-AzVMImage -Location $location `
                       -PublisherName $publisher `
                       -Offer $offer `
                       -Skus $sku `
                       -Version $latestString

#
# Create Resource Group if it doesn't exist
#

if (-not (Get-AzResourceGroup -Name $resourceGroup -ErrorAction SilentlyContinue)) {
    New-AzResourceGroup -Name $resourceGroup -Location $location    
}

#
# Create Managed Disk from LUN 0
#

if ($zone){
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Zone $zone `
                                   -Location $location
} else {
    $diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
                                   -CreateOption FromImage `
                                   -Location $location
} 

Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0

New-AzDisk -ResourceGroupName $resourceGroup `
           -DiskName $diskName `
           -Disk $diskConfig  

Anexar mídia de atualização à VM

Anexe a mídia de atualização para a versão de destino do Windows Server à VM que será atualizada. Isso pode ser feito enquanto a VM está no estado em execução ou parado.

Instruções do portal

  1. Inicie sessão no portal do Azure.

  2. Procure e selecione Máquinas virtuais.

  3. Selecione uma máquina virtual para executar a atualização in-loco na lista.

  4. Na página Máquina virtual, selecione Discos.

  5. Na página Discos, selecione Anexar discos existentes.

  6. Na lista suspensa para Nome do disco, selecione o nome do disco de atualização criado na etapa anterior.

  7. Selecione Salvar para anexar o disco de atualização à VM.

Executar atualização in-loco para o Windows Server 2016, 2019 ou 2022

Para iniciar a atualização in-loco, a VM deve estar no Running estado. Quando a VM estiver em um estado de execução, use as etapas a seguir para executar a atualização.

  1. Conecte-se à VM usando RDP ou RDP-Bastion.

  2. Determine a letra da unidade para o disco de atualização (normalmente E: ou F: se não houver outros discos de dados).

  3. Inicie o Windows PowerShell.

  4. Altere o diretório para o único diretório no disco de atualização.

  5. Execute o seguinte comando para iniciar a atualização:

    .\setup.exe /auto upgrade /dynamicupdate disable 
    
  6. Selecione a imagem "Atualizar para" correta com base na versão atual e na configuração da VM usando a matriz de atualização do Windows Server.

Durante o processo de atualização, a VM se desconectará automaticamente da sessão RDP. Depois que a VM for desconectada da sessão RDP, o progresso da atualização poderá ser monitorado por meio da funcionalidade de captura de tela disponível no portal do Azure.

Executar a atualização in-loco apenas para o Windows Server 2012

Para iniciar a atualização in-loco, a VM deve estar no Running estado. Quando a VM estiver em um estado de execução, use as etapas a seguir para executar a atualização.

  1. Conecte-se à VM usando RDP ou RDP-Bastion.

  2. Determine a letra da unidade para o disco de atualização (normalmente E: ou F: se não houver outros discos de dados).

  3. Inicie o Windows PowerShell.

  4. Altere o diretório para o único diretório no disco de atualização.

  5. Execute o seguinte comando para iniciar a atualização:

    .\setup.exe 
    
  6. Quando a Instalação do Windows for iniciada, selecione Instalar agora.

  7. Para Obter atualizações importantes para a Instalação do Windows, selecione Não, obrigado.

  8. Selecione a imagem correta "Atualizar para" do Windows Server 2012 com base na versão atual e na configuração da VM usando a matriz de atualização do Windows Server.

  9. Na página Termos de licença, selecione Aceito os termos de licença e, em seguida, selecione Avançar.

  10. Para **Que tipo de instalação você quer?" selecione Atualizar: Instalar o Windows e manter arquivos, configurações e aplicativos.

  11. A instalação produzirá um relatório de compatibilidade, você pode ignorar quaisquer avisos e selecionar Avançar.

  12. Quando concluída, a máquina será reinicializada e você será automaticamente desconectado da sessão RDP. Depois que a VM for desconectada da sessão RDP, o progresso da atualização poderá ser monitorado por meio da funcionalidade de captura de tela disponível no portal do Azure.

Etapas pós-atualização

Uma vez que o processo de atualização tenha sido concluído com êxito, as seguintes etapas devem ser tomadas para limpar todos os artefatos que foram criados durante o processo de atualização:

  • Exclua os instantâneos do disco do sistema operacional e do(s) disco(s) de dados se eles tiverem sido criados.

  • Exclua a mídia de atualização Managed Disk.

  • Ative qualquer software antivírus, anti-spyware ou firewall que possa ter sido desativado no início do processo de atualização.

Importante

As informações do plano de imagem não serão alteradas após o processo de atualização.

Recuperar de falha

Se o processo de atualização in-loco não for concluído com êxito, você poderá retornar à versão anterior da VM se instantâneos do disco do sistema operacional e do(s) disco(s) de dados tiverem sido criados. Para reverter a VM para o estado anterior usando instantâneos, conclua as seguintes etapas:

  1. Crie um novo disco gerenciado a partir do instantâneo de disco do sistema operacional e de cada instantâneo de disco de dados seguindo as etapas em Criar um disco a partir de um instantâneo, certificando-se de criar os discos na mesma zona de disponibilidade da VM se a VM estiver em uma zona.

  2. Parar a VM.

  3. Troque o disco do sistema operacional da VM.

  4. Desanexe todos os discos de dados da VM.

  5. Anexe discos de dados criados a partir dos instantâneos na etapa 1.

  6. Reinicie a VM.

Próximos passos