Migrar os recursos IaaS clássicos para o Azure Resource Manager com o PowerShell
Aplica-se a: ✔️ VMs Linux VMs ✔️ Windows
Importante
Atualmente, cerca de 90% das VMs IaaS estão usando o Azure Resource Manager. A partir de 28 de fevereiro de 2020, as VMs clássicas foram preteridas e serão totalmente desativadas em 6 de setembro de 2023. Saiba mais sobre essa depreciação e como ela afeta você.
Estas etapas mostram como usar os comandos do Azure PowerShell para migrar recursos de infraestrutura como serviço (IaaS) do modelo de implantação clássico para o modelo de implantação do Azure Resource Manager.
Se desejar, você também pode migrar recursos usando a CLI do Azure.
- Para obter informações básicas sobre cenários de migração com suporte, consulte Migração de recursos IaaS com suporte de plataforma do clássico para o Azure Resource Manager.
- Para obter orientações detalhadas e um passo a passo sobre migração, consulte Aprofundamento técnico na migração com suporte de plataforma do clássico para o Azure Resource Manager.
- Analise os erros de migração mais comuns.
Aqui está um fluxograma para identificar a ordem na qual as etapas precisam ser executadas durante um processo de migração.
Etapa 1: Planejar a migração
Aqui estão algumas práticas recomendadas que recomendamos ao avaliar se você deve migrar recursos IaaS do clássico para o Gerenciador de Recursos:
- Leia os recursos e configurações suportados e não suportados. Se você tiver máquinas virtuais que usam configurações ou recursos sem suporte, aguarde até que a configuração ou o suporte a recursos seja anunciado. Como alternativa, se atender às suas necessidades, remova esse recurso ou saia dessa configuração para habilitar a migração.
- Se você tiver scripts automatizados que implantam sua infraestrutura e aplicativos hoje, tente criar uma configuração de teste semelhante usando esses scripts para migração. Como alternativa, você pode configurar ambientes de exemplo usando o portal do Azure.
Importante
Atualmente, não há suporte para gateways de aplicativos para migração do clássico para o Gerenciador de Recursos. Para migrar uma rede virtual com um gateway de aplicativo, remova o gateway antes de executar uma operação Preparar para mover a rede. Depois de concluir a migração, reconecte o gateway no Gerenciador de Recursos do Azure.
Os gateways de Rota Expressa do Azure que se conectam a circuitos de Rota Expressa em outra assinatura não podem ser migrados automaticamente. Nesses casos, remova o gateway da Rota Expressa, migre a rede virtual e recrie o gateway. Para obter mais informações, consulte Migrar circuitos de Rota Expressa e redes virtuais associadas do modelo de implantação clássico para o Resource Manager.
Etapa 2: Instalar a versão mais recente do PowerShell
Há duas opções principais para instalar o Azure PowerShell: Galeria do PowerShell ou WebPI (Web Platform Installer). O WebPI recebe atualizações mensais. A Galeria do PowerShell recebe atualizações continuamente. Este artigo é baseado no Azure PowerShell versão 2.1.0.
Para obter instruções de instalação, consulte Como instalar e configurar o Azure PowerShell.
Passo 3: Certifique-se de que é um administrador da subscrição
Para executar essa migração, você deve ser adicionado como coadministrador da assinatura no portal do Azure.
- Inicie sessão no portal do Azure.
- No menu Hub, selecione Assinatura. Se não o vir, selecione Todos os serviços.
- Encontre a entrada de subscrição adequada e, em seguida, consulte o campo A MINHA FUNÇÃO . Para um coadministrador, o valor deve ser Account admin.
Se você não conseguir adicionar um coadministrador, entre em contato com um administrador de serviço ou coadministrador da assinatura para ser adicionado.
Etapa 4: defina sua assinatura e inscreva-se na migração
Primeiro, inicie um prompt do PowerShell. Para migração, configure seu ambiente para o Gerenciador clássico e de recursos.
Inicie sessão na sua conta para obter o modelo do Resource Manager.
Connect-AzAccount
Obtenha as assinaturas disponíveis usando o seguinte comando:
Get-AzSubscription | Sort Name | Select Name
Defina sua assinatura do Azure para a sessão atual. Este exemplo define o nome da assinatura padrão como Minha Assinatura do Azure. Substitua o nome da assinatura de exemplo pelo seu.
Select-AzSubscription –SubscriptionName "My Azure Subscription"
Nota
O registro é uma etapa única, mas você deve fazê-lo uma vez antes de tentar a migração. Sem se registrar, você verá a seguinte mensagem de erro:
BadRequest : A assinatura não está registrada para migração.
Registre-se com o provedor de recursos de migração usando o seguinte comando:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Aguarde cinco minutos para que o registo termine. Verifique o status da aprovação usando o seguinte comando:
Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Certifique-se de que RegistrationState está Registered
antes de prosseguir.
Antes de mudar para o modelo de implantação clássico, verifique se você tem vCPUs de máquina virtual suficientes do Azure Resource Manager na região do Azure de sua implantação atual ou rede virtual. Você pode usar o seguinte comando do PowerShell para verificar o número atual de vCPUs que você tem no Gerenciador de Recursos do Azure. Para saber mais sobre cotas de vCPU, consulte Limites e o Gerenciador de Recursos do Azure.
Este exemplo verifica a disponibilidade na região Oeste dos EUA . Substitua o nome da região de exemplo pelo seu.
Get-AzVMUsage -Location "West US"
Agora, entre na sua conta para obter o modelo de implantação clássico.
Add-AzureAccount
Obtenha as assinaturas disponíveis usando o seguinte comando:
Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName
Defina sua assinatura do Azure para a sessão atual. Este exemplo define a assinatura padrão como Minha Assinatura do Azure. Substitua o nome da assinatura de exemplo pelo seu.
Select-AzureSubscription –SubscriptionName "My Azure Subscription"
Etapa 5: Executar comandos para migrar seus recursos IaaS
- Migrar VMs em um serviço de nuvem (não em uma rede virtual)
- Migrar VMs em uma rede virtual
- Migrar uma conta de armazenamento
Nota
Todas as operações aqui descritas são idempotentes. Se você tiver um problema diferente de um recurso sem suporte ou um erro de configuração, recomendamos que tente novamente a operação de preparação, anulação ou confirmação. Em seguida, a plataforma tenta a ação novamente.
Etapa 5a: Opção 1 - Migrar máquinas virtuais em um serviço de nuvem (não em uma rede virtual)
Obtenha a lista de serviços de nuvem usando o comando a seguir. Em seguida, escolha o serviço de nuvem que você deseja migrar. Se as VMs no serviço de nuvem estiverem em uma rede virtual ou se tiverem funções Web ou de trabalho, o comando retornará uma mensagem de erro.
Get-AzureService | ft Servicename
Obtenha o nome da implantação para o serviço de nuvem. Neste exemplo, o nome do serviço é Meu Serviço. Substitua o nome de serviço de exemplo pelo seu próprio nome de serviço.
$serviceName = "My Service"
$deployment = Get-AzureDeployment -ServiceName $serviceName
$deploymentName = $deployment.DeploymentName
Prepare as máquinas virtuais no serviço de nuvem para migração. Você tem duas opções para escolher.
Opção 1: Migrar as VMs para uma rede virtual criada pela plataforma.
Primeiro, valide se você pode migrar o serviço de nuvem usando os seguintes comandos:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork $validate.ValidationMessages
O comando a seguir exibe todos os avisos e erros que bloqueiam a migração. Se as mensagens de validação não contiverem mensagem de erro de tipo, você poderá passar para a etapa Preparar.
Move-AzureService -Prepare -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork
Opção 2: Migrar para uma rede virtual existente no modelo de implantação do Resource Manager.
Este exemplo define o nome do grupo de recursos como myResourceGroup, o nome da rede virtual como myVirtualNetwork e o nome da sub-rede como mySubNet. Substitua os nomes no exemplo pelos nomes dos seus próprios recursos.
$existingVnetRGName = "myResourceGroup" $vnetName = "myVirtualNetwork" $subnetName = "mySubNet"
Primeiro, valide se você pode migrar a rede virtual usando o seguinte comando:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName $validate.ValidationMessages
O comando a seguir exibe todos os avisos e erros que bloqueiam a migração. Se as mensagens de validação não contiverem erros, você poderá prosseguir com a seguinte etapa Preparar:
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName ` -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName ` -VirtualNetworkName $vnetName -SubnetName $subnetName
Depois que a operação Preparar for bem-sucedida com qualquer uma das opções anteriores, consulte o estado de migração das VMs. Certifique-se de que eles estão no Prepared
estado.
Este exemplo define o nome da VM como myVM. Substitua o nome de exemplo pelo seu próprio nome de VM.
$vmName = "myVM"
$vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
$vm.VM.MigrationState
Verifique a configuração dos recursos preparados usando o PowerShell ou o portal do Azure. Se você não estiver pronto para a migração e quiser voltar ao estado antigo, use o seguinte comando:
Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName
Se a configuração preparada parecer boa, você pode avançar e confirmar os recursos usando o seguinte comando:
Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName
Etapa 5a: Opção 2 - Migrar máquinas virtuais em uma rede virtual
Para migrar máquinas virtuais em uma rede virtual, migre a rede virtual. As máquinas virtuais migram automaticamente com a rede virtual. Escolha a rede virtual que deseja migrar.
Nota
Migre uma única máquina virtual criada usando o modelo de implantação clássico criando uma nova máquina virtual do Resource Manager com Managed Disks usando os arquivos VHD (SO e dados) da máquina virtual.
Nota
O nome da rede virtual pode ser diferente do que é mostrado no novo portal. O novo portal do Azure exibe o nome como [vnet-name]
, mas o nome real da rede virtual é do tipo Group [resource-group-name] [vnet-name]
. Antes de iniciar a migração, procure o nome real da rede virtual usando o comando Get-AzureVnetSite | Select -Property Name
ou visualize-o no antigo portal do Azure.
Este exemplo a seguir define o nome da rede virtual como Group [resource-group-name] [vnet-name]. Substitua o nome de rede virtual de exemplo por um que foi retornado da execução do comando na seção Nota acima..
$vnetName = "Group [resource-group-name] [vnet-name]"
Nota
Se a rede virtual contiver funções Web ou de trabalho, ou VMs com configurações sem suporte, você receberá uma mensagem de erro de validação.
Primeiro, valide se você pode migrar a rede virtual usando o seguinte comando:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
O comando a seguir exibe todos os avisos e erros que bloqueiam a migração. Se a validação for bem-sucedida, você poderá prosseguir com a seguinte etapa Preparar:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
Verifique a configuração das máquinas virtuais preparadas usando o Azure PowerShell ou o portal do Azure. Se você não estiver pronto para a migração e quiser voltar ao estado antigo, use o seguinte comando:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
Se a configuração preparada parecer boa, você pode avançar e confirmar os recursos usando o seguinte comando:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
Etapa 5b: Migrar uma conta de armazenamento
Depois de concluir a migração das máquinas virtuais, execute as seguintes verificações de pré-requisitos antes de migrar as contas de armazenamento.
Nota
Se sua conta de armazenamento não tiver discos ou dados de VM associados, você poderá pular diretamente para a seção "Validar contas de armazenamento e iniciar a migração". Observe também que excluir os discos clássicos, imagens de VM ou imagens do sistema operacional não remove os arquivos VHD de origem na conta de armazenamento. No entanto, ele quebra a concessão desses arquivos VHD para que eles possam ser reutilizados para criar discos ARM ou imagens após a migração.
Os pré-requisitos verificam se você migrou alguma VM ou se sua conta de armazenamento tem recursos de disco:
Migre máquinas virtuais cujos discos estão armazenados na conta de armazenamento.
O comando a seguir retorna as propriedades RoleName e DiskName de todos os discos VM na conta de armazenamento. RoleName é o nome da máquina virtual à qual um disco está conectado. Se esse comando retornar discos, verifique se as máquinas virtuais às quais esses discos estão conectados são migradas antes de migrar a conta de armazenamento.
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property ` DiskName | Format-List -Property RoleName, DiskName
Exclua discos VM não anexados armazenados na conta de armazenamento.
Localize discos VM não anexados na conta de armazenamento usando o seguinte comando:
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName
Se o comando anterior retornar discos, exclua esses discos usando o seguinte comando:
Remove-AzureDisk -DiskName 'yourDiskName'
Exclua imagens de VM armazenadas na conta de armazenamento.
O comando a seguir retorna todas as imagens da VM com discos do sistema operacional armazenados na conta de armazenamento.
Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)` } | Select-Object -Property ImageName, ImageLabel
O comando a seguir retorna todas as imagens da VM com discos de dados armazenados na conta de armazenamento.
Get-AzureVmImage | Where-Object {$_.DataDiskConfigurations -ne $null ` -and ($_.DataDiskConfigurations | Where-Object {$_.MediaLink -ne $null -and $_.MediaLink.Host.Contains($storageAccountName)}).Count -gt 0 ` } | Select-Object -Property ImageName, ImageLabel
Exclua todas as imagens de VM retornadas pelos comandos anteriores usando este comando:
Remove-AzureVMImage -ImageName 'yourImageName'
Valide contas de armazenamento e inicie a migração.
Valide cada conta de armazenamento para migração usando o comando a seguir. Neste exemplo, o nome da conta de armazenamento é myStorageAccount. Substitua o nome de exemplo pelo nome da sua própria conta de armazenamento.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
A próxima etapa é preparar a conta de armazenamento para migração.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
Verifique a configuração da conta de armazenamento preparada usando o Azure PowerShell ou o portal do Azure. Se você não estiver pronto para a migração e quiser voltar ao estado antigo, use o seguinte comando:
Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
Se a configuração preparada parecer boa, você pode avançar e confirmar os recursos usando o seguinte comando:
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
Próximos passos
- Visão geral da migração com suporte de plataforma de recursos IaaS do clássico para o Azure Resource Manager
- Technical deep dive on platform-supported migration from classic to Azure Resource Manager (Análise detalhada técnica sobre a migração suportada por plataforma da clássica para Azure Resource Manager)
- Planear a migração de recursos de IaaS do clássico para o Azure Resource Manager
- Usar a CLI para migrar recursos IaaS do clássico para o Azure Resource Manager
- Ferramentas da comunidade para ajudar na migração de recursos IaaS do clássico para o Azure Resource Manager
- Consultar os erros de migração mais comuns
- Analise as perguntas mais frequentes sobre a migração de recursos IaaS do clássico para o Azure Resource Manager