PowerShell ile VHD dosyasından özel görüntü oluşturma
Azure DevTest Labs'de özel görüntüleri kullanarak şunları yapabilirsiniz:
- İhtiyacınız olan tüm yazılımların önceden yüklenmiş olduğu bir VHD dosyasından VM oluşturun.
- Tüm gerekli yazılımları hedef makinelere yüklemeniz gerekmediğinden VM'leri hızla oluşturun.
- Bir VM'den özel görüntü oluşturup ardından bu görüntüyü temel alan VM'ler oluşturarak VM'yi klonlayın.
Önkoşullar
Bu öğreticide çalışmak için, özel görüntüyü oluşturmak istediğiniz laboratuvarın Azure Depolama hesabına yüklenmiş bir sanal sabit disk (VHD) dosyası gerekir. Depolama hesabınıza bir VHD dosyası yüklemek için şu makalelerden birinde yer alan yönergeleri izleyin:
- AzCopy komut satırı yardımcı programını kullanarak bir VHD dosyasını karşıya yükleyin.
- Microsoft Azure Depolama Gezgini kullanarak VHD dosyasını karşıya yükleyin.
- PowerShell kullanarak VHD dosyasını karşıya yükleyin.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
PowerShell adımları
Aşağıdaki adımlar, Azure PowerShell kullanarak bir VHD dosyasından özel görüntü oluşturma işleminde size yol göstereceğiz:
PowerShell komut isteminde Bağlan-AzAccount cmdlet'iyle Azure hesabınızda oturum açın:
Connect-AzAccount
Select-AzSubscription cmdlet'iyle Azure aboneliğinizi seçin. Abonelik kimliğini abonelik kimliği> GUID'nizle değiştirin<.
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
Get-AzResource cmdlet'ini çağırarak laboratuvar nesnesini alın. <Laboratuvar kaynak grubu adını> ve <laboratuvar adı> yer tutucularını kendi kaynak grubunuz ve laboratuvar adlarınızla değiştirin.
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
$vhdUri değişkeninin yer tutucusunun yerine karşıya yüklenen VHD dosyanızın URI'sini yazın. VHD dosyasının URI'sini Azure portalındaki laboratuvarın depolama hesabındaki blob sayfasından alabilirsiniz. Örnek bir VHD URI'si:
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
.$vhdUri = '<VHD URI>'
New-AzResourceGroupDeployment cmdlet'ini kullanarak özel görüntü oluşturun. <Özel görüntü adı> ve <özel görüntü açıklaması> yer tutucularını istediğiniz ad ve açıklamayla değiştirin.
$customImageName = '<custom image name>' $customImageDescription = '<custom image description>' $parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription} New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters
PowerShell betiğini tamamlama
Önceki adımların birleştirilmesi, bir VHD dosyasından özel görüntü oluşturan aşağıdaki PowerShell betiğini oluşturur. Betiği kullanmak için aşağıdaki yer tutucuları kendi değerlerinizle değiştirin:
- <abonelik kimliği>
- <laboratuvar kaynak grubu adı>
- <laboratuvar adı>
- <VHD URI'sı>
- <özel görüntü adı>
- <özel görüntü açıklaması>
# Log in to your Azure account.
Connect-AzAccount
# Select the desired Azure subscription.
$subscriptionId = '<subscription ID>'
Select-AzSubscription -SubscriptionId $subscriptionId
# Get the lab object.
$labRg = '<lab resource group name>'
$labName = '<lab name>'
$lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
# Set the URI of the VHD file.
$vhdUri = '<VHD URI>'
# Set the custom image name and description values.
$customImageName = '<custom image name>'
$customImageDescription = '<custom image description>'
# Set up the parameters object.
$parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription}
# Create the custom image.
New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters