Partilhar via


Faça o upload de um VHD generalizado para Azure para criar um novo VM

Este tópico abrange o upload de um disco generalizado não gerido para uma conta de armazenamento e, em seguida, criar um novo VM usando o disco carregado. Uma imagem de VHD generalizada retirou todas as informações da sua conta pessoal usando a Sysprep.

Se quiser criar um VM a partir de um VHD especializado numa conta de armazenamento, consulte Criar um VM a partir de um VHD especializado.

Este tópico abrange a utilização de contas de armazenamento, mas recomendamos que os clientes passem a usar Managed Disks em vez disso. Para obter uma reg-through completa de como preparar, carregar e criar um novo VM utilizando discos geridos, consulte Criar um novo VM a partir de um VHD generalizado carregado para Azure usando Managed Disks.

Preparar a VM

Um VHD generalizado retirou todas as informações da sua conta pessoal usando a Sysprep. Se pretender usar o VHD como imagem para criar novos VMs a partir de, deve:

Generalize uma máquina virtual Windows usando o Sysprep

Esta secção mostra-lhe como generalizar a sua máquina virtual Windows para utilização como imagem. O Sysprep remove todas as suas informações de conta pessoal, entre outras coisas, e prepara a máquina para ser utilizada como uma imagem. Para mais detalhes sobre o Sysprep, consulte Como Usar o Sysprep: An Introduction.

Certifique-se de que as funções do servidor em funcionamento na máquina são suportadas pela Sysprep. Para mais informações, consulte o Suporte Sysprep para funções de servidor

Importante

Se estiver a executar o Sysprep antes de enviar o seu VHD para Azure pela primeira vez, certifique-se de que preparou o seu VM antes de executar o Sysprep.

  1. Inicie sessão na máquina virtual do Windows.

  2. Abra a janela da Linha de Comandos como administrador. Mude o diretório para %windir%\system32\sysprep e, em seguida, corra sysprep.exe.

  3. Na caixa de diálogo Ferramenta de Preparação do Sistema, selecione Entrar na Experiência 1ª Execução (OOBE) do Sistema e certifique-se de que a caixa de verificação Generalizar está selecionada.

  4. Nas opções de encerramento, selecione Shutdown.

  5. Clique em OK.

    Iniciar Sysprep

  6. Quando o Sysprep estiver concluído, encerra a máquina virtual.

Importante

Não reinicie o VM até terminar o upload do VHD para Azure ou criar uma imagem a partir do VM. Se o VM for reiniciado acidentalmente, faça sysprep para generalizá-lo novamente.

Faça o upload do VHD

Faça o upload do VHD para uma conta de armazenamento Azure.

Iniciar sessão no Azure

Se ainda não tiver a versão 1.4 ou superior da PowerShell instalada, leia Como instalar e configurar Azure PowerShell.

  1. Abra Azure PowerShell e inscreva-se na sua conta Azure. Uma janela pop-up abre-se para que você introduza as suas credenciais de conta Azure.

    Connect-AzAccount
    
  2. Obtenha os IDs de subscrição para as suas subscrições disponíveis.

    Get-AzSubscription
    
  3. Desaja a subscrição correta utilizando o ID de subscrição. Substitua-o <subscriptionID> pelo ID da subscrição correta.

    Select-AzSubscription -SubscriptionId "<subscriptionID>"
    

Obtenha a conta de armazenamento

Precisa de uma conta de armazenamento em Azure para armazenar a imagem em VM carregada. Pode utilizar uma conta de armazenamento existente ou criar uma nova.

Para mostrar as contas de armazenamento disponíveis, escreva:

Get-AzStorageAccount

Se pretender utilizar uma conta de armazenamento existente, dirija-se à secção de imagem VM.

Se precisar de criar uma conta de armazenamento, siga estes passos:

  1. Precisa do nome do grupo de recursos onde a conta de armazenamento deve ser criada. Para descobrir todos os grupos de recursos que estão na sua subscrição, escreva:

    Get-AzResourceGroup
    

    Para criar um grupo de recursos chamado myResourceGroup na região oeste dos EUA , escreva:

    New-AzResourceGroup -Name myResourceGroup -Location "West US"
    
  2. Crie uma conta de armazenamento denominada mystorageaccount neste grupo de recursos utilizando o cmdlet New-AzStorageAccount :

    New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" `
        -SkuName "Standard_LRS" -Kind "Storage"
    

Inicie o upload

Utilize o cmdlet Add-AzVhd para enviar a imagem para um recipiente na sua conta de armazenamento. Este exemplo envia o ficheiro myVHD.vhd para uma conta de "C:\Users\Public\Documents\Virtual hard disks\" armazenamento chamada mystorageaccount no grupo de recursos myResourceGroup . O ficheiro será colocado no contentor chamado mycontainer e o novo nome do ficheiro será myUploadedVHD.vhd.

$rgName = "myResourceGroup"
$urlOfUploadedImageVhd = "https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd"
Add-AzVhd -ResourceGroupName $rgName -Destination $urlOfUploadedImageVhd `
    -LocalFilePath "C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

Se for bem sucedido, obtém-se uma resposta semelhante a esta:

MD5 hash is being calculated for the file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:03:35
Creating new page blob of size 53687091712...
Elapsed time for upload: 01:12:49

LocalFilePath           DestinationUri
-------------           --------------
C:\Users\Public\Doc...  https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd

Dependendo da sua ligação à rede e do tamanho do seu ficheiro VHD, este comando pode demorar algum tempo a ser concluído.

Crie uma nova VM

Agora pode utilizar o VHD carregado para criar um novo VM.

Definir o URI do VHD

O URI para o VHD a utilizar está no formato: https:// mystorageaccount.blob.core.windows.net/mycontainer/MyVhdName.vhd. Neste exemplo, o VHD chamado myVHD está na conta de armazenamento mystorageaccount no mycontainer do contentor.

$imageURI = "https://mystorageaccount.blob.core.windows.net/mycontainer/myVhd.vhd"

Criar uma rede virtual

Crie o vNet e a sub-rede da rede virtual.

  1. Crie a sub-rede. A amostra a seguir cria uma sub-rede chamada mySubnet no grupo de recursos myResourceGroup com o prefixo de endereço de 10.0.0.0/24.

    $rgName = "myResourceGroup"
    $subnetName = "mySubnet"
    $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
    
  2. Criar a rede virtual. A amostra a seguir cria uma rede virtual chamada myVnet na localização oeste dos EUA com o prefixo de endereço de 10.0.0.0/16.

    $location = "WestUS"
    $vnetName = "myVnet"
    $vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
        -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
    

Criar um endereço IP público e interface de rede

Para ativar a comunicação com a máquina virtual na rede virtual, é necessário um endereço IP público e uma interface de rede.

  1. Crie um endereço IP público. Este exemplo cria um endereço IP público chamado myPip.

    $ipName = "myPip"
    $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
        -AllocationMethod Dynamic
    
  2. Criar o NIC. Este exemplo cria um NIC chamado myNic.

    $nicName = "myNic"
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location `
        -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
    

Criar o grupo de segurança da rede e uma regra RDP

Para poder iniciar sessão no seu VM utilizando RDP, é necessário ter uma regra de segurança que permita o acesso do RDP à porta 3389.

Este exemplo cria um NSG chamado myNsg que contém uma regra chamada myRdpRule que permite o tráfego RDP sobre a porta 3389. Para obter mais informações sobre NSGs, consulte portas de abertura para um VM em Azure usando PowerShell.

$nsgName = "myNsg"

$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
    -SourceAddressPrefix Internet -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389

$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
    -Name $nsgName -SecurityRules $rdpRule

Criar uma variável para a rede virtual

Criar uma variável para a rede virtual concluída.

$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName

Criar a VM

O seguinte script PowerShell mostra como configurar as configurações da máquina virtual e usar a imagem VM carregada como fonte para a nova instalação.

# Enter a new user name and password to use as the local administrator account 
    # for remotely accessing the VM.
    $cred = Get-Credential

    # Name of the storage account where the VHD is located. This example sets the 
    # storage account name as "myStorageAccount"
    $storageAccName = "myStorageAccount"

    # Name of the virtual machine. This example sets the VM name as "myVM".
    $vmName = "myVM"

    # Size of the virtual machine. This example creates "Standard_D2_v2" sized VM. 
    # See the VM sizes documentation for more information: 
    # https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/
    $vmSize = "Standard_D2_v2"

    # Computer name for the VM. This examples sets the computer name as "myComputer".
    $computerName = "myComputer"

    # Name of the disk that holds the OS. This example sets the 
    # OS disk name as "myOsDisk"
    $osDiskName = "myOsDisk"

    # Assign a SKU name. This example sets the SKU name as "Standard_LRS"
    # Valid values for -SkuName are: Standard_LRS - locally redundant storage, Standard_ZRS - zone redundant
    # storage, Standard_GRS - geo redundant storage, Standard_RAGRS - read access geo redundant storage,
    # Premium_LRS - premium locally redundant storage. 
    $skuName = "Standard_LRS"

    # Get the storage account where the uploaded image is stored
    $storageAcc = Get-AzStorageAccount -ResourceGroupName $rgName -AccountName $storageAccName

    # Set the VM name and size
    $vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize

    #Set the Windows operating system configuration and add the NIC
    $vm = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $computerName `
        -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
    $vm = Add-AzVMNetworkInterface -VM $vm -Id $nic.Id

    # Create the OS disk URI
    $osDiskUri = '{0}vhds/{1}-{2}.vhd' `
        -f $storageAcc.PrimaryEndpoints.Blob.ToString(), $vmName.ToLower(), $osDiskName

    # Configure the OS disk to be created from the existing VHD image (-CreateOption fromImage).
    $vm = Set-AzVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri `
        -CreateOption fromImage -SourceImageUri $imageURI -Windows

    # Create the new VM
    New-AzVM -ResourceGroupName $rgName -Location $location -VM $vm

Verifique se o VM foi criado

Quando estiver concluído, deverá ver o VM recém-criado no portal do Azure emmáquinas Virtuaisde navegação> ou utilizando os seguintes comandos PowerShell:

    $vmList = Get-AzVM -ResourceGroupName $rgName
    $vmList.Name

Passos seguintes

Para gerir a sua nova máquina virtual com Azure PowerShell, consulte Gerir máquinas virtuais utilizando a Azure Resource Manager e PowerShell.