Udostępnij za pośrednictwem


Przekazywanie uogólnionego wirtualnego dysku twardego na platformę Azure w celu utworzenia nowej maszyny wirtualnej

W tym temacie omówiono przekazywanie uogólnionego dysku niezarządzanego do konta magazynu, a następnie utworzenie nowej maszyny wirtualnej przy użyciu przekazanego dysku. Uogólniony obraz wirtualnego dysku twardego miał wszystkie dane osobiste usunięte przy użyciu narzędzia Sysprep.

Jeśli chcesz utworzyć maszynę wirtualną na podstawie wyspecjalizowanego wirtualnego dysku twardego na koncie magazynu, zobacz Tworzenie maszyny wirtualnej na podstawie wyspecjalizowanego wirtualnego dysku twardego.

W tym temacie opisano używanie kont magazynu, ale zalecamy, aby klienci przechodzili do korzystania z Dyski zarządzane zamiast tego. Aby uzyskać kompletny przewodnik po przygotowaniu, przekazaniu i utworzeniu nowej maszyny wirtualnej przy użyciu dysków zarządzanych, zobacz Tworzenie nowej maszyny wirtualnej na podstawie uogólnionego wirtualnego dysku twardego przekazanego na platformę Azure przy użyciu Dyski zarządzane.

Przygotowywanie maszyny wirtualnej

Uogólniony dysk VHD miał wszystkie informacje o koncie osobistym usunięte przy użyciu narzędzia Sysprep. Jeśli zamierzasz użyć wirtualnego dysku twardego jako obrazu do utworzenia nowych maszyn wirtualnych, należy wykonać następujące elementy:

Uogólnij maszynę wirtualną z systemem Windows przy użyciu narzędzia Sysprep

W tej sekcji pokazano, jak uogólnić maszynę wirtualną z systemem Windows do użycia jako obraz. Narzędzie Sysprep między innymi usuwa wszystkie informacje osobiste związane z kontem i przygotowuje maszynę do używania jako obraz. Aby uzyskać szczegółowe informacje na temat narzędzia Sysprep, zobacz How to Use Sysprep: An Introduction (Jak używać narzędzia Sysprep: wprowadzenie).

Upewnij się, że role serwera uruchomione na maszynie są obsługiwane przez narzędzie Sysprep. Aby uzyskać więcej informacji, zobacz Obsługa programu Sysprep dla ról serwera

Ważne

Jeśli uruchamiasz narzędzie Sysprep przed przekazaniem wirtualnego dysku twardego na platformę Azure po raz pierwszy, upewnij się, że maszyna wirtualna jest przygotowana przed uruchomieniem narzędzia Sysprep.

  1. Zaloguj się do maszyny wirtualnej z systemem Windows.

  2. Otwórz okno wiersza polecenia jako administrator. Zmień katalog na %windir%\system32\sysprep, a następnie uruchom plik sysprep.exe.

  3. W oknie dialogowym Narzędzie przygotowywania systemu wybierz pozycję Włącz systemowy tryb OOBE i upewnij się, że pole wyboru Uogólnij jest zaznaczone.

  4. W obszarze Opcje zamykania wybierz pozycję Zamknij.

  5. Kliknij przycisk OK.

    Uruchom narzędzie Sysprep

  6. Gdy narzędzie Sysprep zakończy działanie, maszyna wirtualna zostanie wyłączona.

Ważne

Nie uruchamiaj ponownie maszyny wirtualnej do momentu przekazania wirtualnego dysku twardego na platformę Azure lub utworzenia obrazu z maszyny wirtualnej. Jeśli maszyna wirtualna zostanie przypadkowo uruchomiona ponownie, uruchom polecenie Sysprep, aby ponownie go uogólnić.

Przekazywanie wirtualnego dysku twardego

Przekaż wirtualny dysk twardy do konta usługi Azure Storage.

Zaloguj się do platformy Azure.

Jeśli nie masz jeszcze zainstalowanego programu PowerShell w wersji 1.4 lub nowszej, przeczytaj Jak zainstalować i skonfigurować Azure PowerShell.

  1. Otwórz Azure PowerShell i zaloguj się do konta platformy Azure. Zostanie otwarte okno podręczne umożliwiające wprowadzenie poświadczeń konta platformy Azure.

    Connect-AzAccount
    
  2. Pobierz identyfikatory subskrypcji dla dostępnych subskrypcji.

    Get-AzSubscription
    
  3. Ustaw poprawną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp <subscriptionID> ciąg identyfikatorem właściwej subskrypcji.

    Select-AzSubscription -SubscriptionId "<subscriptionID>"
    

Pobieranie konta magazynu

Do przechowywania przekazanego obrazu maszyny wirtualnej potrzebne jest konto magazynu na platformie Azure. Możesz użyć istniejącego konta magazynu lub utworzyć nowe.

Aby wyświetlić dostępne konta magazynu, wpisz:

Get-AzStorageAccount

Jeśli chcesz użyć istniejącego konta magazynu, przejdź do sekcji Przekazywanie obrazu maszyny wirtualnej.

Jeśli musisz utworzyć konto magazynu, wykonaj następujące kroki:

  1. Potrzebna jest nazwa grupy zasobów, w której należy utworzyć konto magazynu. Aby dowiedzieć się więcej o wszystkich grupach zasobów, które znajdują się w subskrypcji, wpisz:

    Get-AzResourceGroup
    

    Aby utworzyć grupę zasobów o nazwie myResourceGroup w regionie Zachodnie stany USA , wpisz:

    New-AzResourceGroup -Name myResourceGroup -Location "West US"
    
  2. Utwórz konto magazynu o nazwie mystorageaccount w tej grupie zasobów przy użyciu polecenia cmdlet New-AzStorageAccount :

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

Uruchamianie przekazywania

Użyj polecenia cmdlet Add-AzVhd , aby przekazać obraz do kontenera na koncie magazynu. W tym przykładzie plik myVHD.vhd jest przekazywany do "C:\Users\Public\Documents\Virtual hard disks\" konta magazynu o nazwie mystorageaccount w grupie zasobów myResourceGroup . Plik zostanie umieszczony w kontenerze o nazwie mycontainer , a nowa nazwa pliku to 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"

W przypadku powodzenia otrzymasz odpowiedź podobną do następującej:

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

W zależności od połączenia sieciowego i rozmiaru pliku VHD to polecenie może zająć trochę czasu.

Utworzenie nowej maszyny wirtualnej.

Teraz możesz użyć przekazanego wirtualnego dysku twardego, aby utworzyć nową maszynę wirtualną.

Ustawianie identyfikatora URI wirtualnego dysku twardego

Identyfikator URI używany przez wirtualny dysk twardy ma format: https:// mystorageaccount.blob.core.windows.net/mycontainer/MyVhdName.vhd. W tym przykładzie wirtualny dysk twardy o nazwie myVHD znajduje się na koncie magazynu mystorageaccount w kontenerze mycontainer.

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

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną i podsieć sieci wirtualnej.

  1. Utwórz podsieć. Poniższy przykład tworzy podsieć o nazwie mySubnet w grupie zasobów myResourceGroup z prefiksem adresu 10.0.0.0/24.

    $rgName = "myResourceGroup"
    $subnetName = "mySubnet"
    $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
    
  2. Utwórz sieć wirtualną. Poniższy przykład tworzy sieć wirtualną o nazwie myVnet w lokalizacji Zachodnie stany USA z prefiksem adresu 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
    

Tworzenie publicznego adresu IP i interfejsu sieciowego

Aby umożliwić komunikację z maszyną wirtualną w sieci wirtualnej, potrzebujesz publicznego adresu IP i interfejsu sieciowego.

  1. Utwórz publiczny adres IP. W tym przykładzie zostanie utworzony publiczny adres IP o nazwie myPip.

    $ipName = "myPip"
    $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
        -AllocationMethod Dynamic
    
  2. Utwórz kartę sieciową. W tym przykładzie zostanie utworzona karta sieciowa o nazwie myNic.

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

Tworzenie sieciowej grupy zabezpieczeń i reguły protokołu RDP

Aby móc zalogować się do maszyny wirtualnej przy użyciu protokołu RDP, musisz mieć regułę zabezpieczeń zezwalaną na dostęp RDP na porcie 3389.

W tym przykładzie utworzono sieciową grupę zabezpieczeń o nazwie myNsg zawierającą regułę o nazwie myRdpRule , która zezwala na ruch RDP przez port 3389. Aby uzyskać więcej informacji na temat sieciowych grup zabezpieczeń, zobacz Otwieranie portów do maszyny wirtualnej na platformie Azure przy użyciu programu 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

Tworzenie zmiennej dla sieci wirtualnej

Utwórz zmienną dla ukończonej sieci wirtualnej.

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

Tworzenie maszyny wirtualnej

Poniższy skrypt programu PowerShell pokazuje, jak skonfigurować konfiguracje maszyny wirtualnej i użyć przekazanego obrazu maszyny wirtualnej jako źródła nowej instalacji.

# 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

Sprawdź, czy maszyna wirtualna została utworzona

Po zakończeniu powinna zostać wyświetlona nowo utworzona maszyna wirtualna w Azure Portal w obszarze Przeglądaj>maszyny wirtualne lub przy użyciu następujących poleceń programu PowerShell:

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

Następne kroki

Aby zarządzać nową maszyną wirtualną za pomocą Azure PowerShell, zobacz Zarządzanie maszynami wirtualnymi przy użyciu usługi Azure Resource Manager i programu PowerShell.