Yeni bir VM oluşturmak için Genelleştirilmiş VHD'yi Azure'a yükleme
Bu konu, genelleştirilmiş yönetilmeyen bir diski depolama hesabına yüklemeyi ve ardından karşıya yüklenen diski kullanarak yeni bir VM oluşturmayı kapsar. Genelleştirilmiş bir VHD görüntüsünde Sysprep kullanılarak tüm kişisel hesap bilgileriniz kaldırıldı.
Depolama hesabındaki özelleştirilmiş bir VHD'den VM oluşturmak istiyorsanız bkz. Özelleştirilmiş bir VHD'den VM oluşturma.
Bu konu depolama hesaplarını kullanmayı kapsar, ancak müşterilerin bunun yerine Yönetilen Diskler kullanmaya geçmelerini öneririz. Yönetilen diskleri kullanarak yeni bir VM hazırlama, karşıya yükleme ve oluşturma hakkında ayrıntılı bilgi için bkz. Yönetilen Diskler kullanarak Azure'a yüklenen genelleştirilmiş bir VHD'den yeni vm oluşturma.
VM’yi hazırlama
Genelleştirilmiş bir VHD, Sysprep kullanılarak tüm kişisel hesap bilgilerinizi kaldırmıştır. VHD'yi yeni VM'ler oluşturmak için görüntü olarak kullanmayı planlıyorsanız şunları yapmalısınız:
- Azure'a yüklemek için bir Windows VHD hazırlayın.
- Sysprep kullanarak sanal makineyi genelleştirme
Sysprep kullanarak Windows sanal makinesini genelleştirme
Bu bölümde, Windows sanal makinenizi görüntü olarak kullanmak üzere genelleştirme işlemi gösterilmektedir. Sysprep diğer öğelerin yanı sıra tüm kişisel hesap bilgilerinizi kaldırır ve makineyi bir görüntü olarak kullanılacak şekilde hazırlar. Sysprep hakkında ayrıntılı bilgi için bkz. Sysprep Kullanma: Giriş.
Makinede çalışan sunucu rollerinin Sysprep tarafından desteklendiğinden emin olun. Daha fazla bilgi için bkz. Sunucu Rolleri için Sysprep Desteği
Önemli
VHD'nizi Azure'a ilk kez yüklemeden önce Sysprep çalıştırıyorsanız, Sysprep'i çalıştırmadan önce VM'nizi hazırladığınızdan emin olun.
Windows sanal makinesinde oturum açın.
Yönetici olarak Komut İstemi penceresini açın. Dizini %windir%\system32\sysprep olarak değiştirin ve komutunu çalıştırın
sysprep.exe
.Sistem Hazırlama Aracı iletişim kutusunda Sistem İlk Çalıştırma Deneyimi (OOBE) Moduna Gir'i seçin ve Genelleştir onay kutusunun seçili olduğundan emin olun.
Kapatma Seçenekleri'ndeKapat'ı seçin.
Tamam'a tıklayın.
Sysprep tamamlandığında, sanal makineyi kapatır.
Önemli
VHD'yi Azure'a yüklemeyi veya VM'den görüntü oluşturmayı tamamlayana kadar VM'yi yeniden başlatmayın. VM yanlışlıkla yeniden başlatılırsa, yeniden genelleştirmek için Sysprep'i çalıştırın.
VHD'yi karşıya yükleme
VHD'yi bir Azure depolama hesabına yükleyin.
Azure'da oturum açma
PowerShell sürüm 1.4 veya üzeri yüklü değilse Azure PowerShell yükleme ve yapılandırma makalesini okuyun.
Azure PowerShell açın ve Azure hesabınızda oturum açın. Azure hesabı kimlik bilgilerinizi girmeniz için bir açılır pencere açılır.
Connect-AzAccount
Kullanılabilir abonelikleriniz için abonelik kimliklerini alın.
Get-AzSubscription
Abonelik kimliğini kullanarak doğru aboneliği ayarlayın. değerini doğru aboneliğin kimliğiyle değiştirin
<subscriptionID>
.Select-AzSubscription -SubscriptionId "<subscriptionID>"
Depolama hesabını alma
Karşıya yüklenen VM görüntüsünü depolamak için Azure'da bir depolama hesabına ihtiyacınız vardır. Mevcut bir depolama hesabını kullanabilir veya yeni bir hesap oluşturabilirsiniz.
Kullanılabilir depolama hesaplarını göstermek için şunu yazın:
Get-AzStorageAccount
Mevcut bir depolama hesabını kullanmak istiyorsanız VM görüntüsünü karşıya yükleme bölümüne geçin.
Depolama hesabı oluşturmanız gerekiyorsa şu adımları izleyin:
Depolama hesabının oluşturulması gereken kaynak grubunun adına ihtiyacınız vardır. Aboneliğinizdeki tüm kaynak gruplarını bulmak için şunu yazın:
Get-AzResourceGroup
Batı ABD bölgesinde myResourceGroup adlı bir kaynak grubu oluşturmak için şunu yazın:
New-AzResourceGroup -Name myResourceGroup -Location "West US"
New-AzStorageAccount cmdlet'ini kullanarak bu kaynak grubunda mystorageaccount adlı bir depolama hesabı oluşturun:
New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" ` -SkuName "Standard_LRS" -Kind "Storage"
Karşıya yüklemeyi başlatma
Görüntüyü depolama hesabınızdaki bir kapsayıcıya yüklemek için Add-AzVhd cmdlet'ini kullanın. Bu örnek, myVHD.vhd"C:\Users\Public\Documents\Virtual hard disks\"
dosyasını myResourceGroup kaynak grubundaki mystorageaccount adlı depolama hesabına yükler. Dosya mycontainer adlı kapsayıcıya yerleştirilir ve yeni dosya adı myUploadedVHD.vhd olur.
$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"
Başarılı olursa şuna benzer bir yanıt alırsınız:
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
Ağ bağlantınıza ve VHD dosyanızın boyutuna bağlı olarak bu komutun tamamlanması biraz zaman alabilir.
Yeni bir VM oluşturun
Artık karşıya yüklenen VHD'yi kullanarak yeni bir VM oluşturabilirsiniz.
VHD'nin URI'sini ayarlama
Kullanılacak VHD için URI şu biçimdedir: https:// mystorageaccount.blob.core.windows.net/mycontainer/MyVhdName.vhd. Bu örnekte myVHD adlı VHD, mycontainer kapsayıcısında mystorageaccount depolama hesabındadır.
$imageURI = "https://mystorageaccount.blob.core.windows.net/mycontainer/myVhd.vhd"
Sanal ağ oluşturma
Sanal ağın sanal ağını ve alt ağını oluşturun.
Alt ağı oluşturun. Aşağıdaki örnek, myResourceGroup kaynak grubunda 10.0.0.0/24 adres ön eki ile mySubnet adlı bir alt ağ oluşturur.
$rgName = "myResourceGroup" $subnetName = "mySubnet" $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
Sanal ağı oluşturun. Aşağıdaki örnek, Batı ABD konumunda 10.0.0.0/16 adres ön eki ile myVnet adlı bir sanal ağ oluşturur.
$location = "WestUS" $vnetName = "myVnet" $vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location ` -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
Genel IP adresi ve ağ arabirimi oluşturma
Sanal makinenin sanal ağda iletişimini etkinleştirmeniz için, genel IP adresi ve ağ arabirimi gereklidir.
Genel IP adresi oluşturun. Bu örnek myPip adlı bir genel IP adresi oluşturur.
$ipName = "myPip" $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location ` -AllocationMethod Dynamic
NIC'yi oluşturun. Bu örnek myNic adlı bir NIC oluşturur.
$nicName = "myNic" $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location ` -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
Ağ güvenlik grubu ve RDP kuralı oluşturma
RDP kullanarak VM'nizde oturum açabilmek için 3389 numaralı bağlantı noktasında RDP erişimine izin veren bir güvenlik kuralına sahip olmanız gerekir.
Bu örnek, 3389 numaralı bağlantı noktası üzerinden RDP trafiğine izin veren myRdpRule adlı bir kural içeren myNsg adlı bir NSG oluşturur. NSG'ler hakkında daha fazla bilgi için bkz. PowerShell kullanarak Azure'da bir VM'ye bağlantı noktası açma.
$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
Sanal ağ için değişken oluşturma
Tamamlanmış sanal ağ için bir değişken oluşturun.
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName
Sanal makineyi oluşturma
Aşağıdaki PowerShell betiği, sanal makine yapılandırmalarını ayarlamayı ve karşıya yüklenen VM görüntüsünü yeni yüklemenin kaynağı olarak kullanmayı gösterir.
# 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
VM'nin oluşturulduğunu doğrulayın
tamamlandığında, Azure portalSanal makinelereGözat>altında veya aşağıdaki PowerShell komutlarını kullanarak yeni oluşturulan VM'yi görmeniz gerekir:
$vmList = Get-AzVM -ResourceGroupName $rgName
$vmList.Name
Sonraki adımlar
Yeni sanal makinenizi Azure PowerShell ile yönetmek için bkz. Azure Resource Manager ve PowerShell kullanarak sanal makineleri yönetme.