Share via


PowerShell ile VHD dosyasından özel görüntü oluşturma

Azure DevTest Labs'da ö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şturarak ve 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. Bir VHD dosyasını depolama hesabınıza yüklemek için şu makalelerden birinde yer alan yönergeleri izleyin:

Not

Azure ile etkileşime geçmek 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:

  1. PowerShell komut isteminde Connect-AzAccount cmdlet'iyle Azure hesabınızda oturum açın:

    Connect-AzAccount
    
  2. 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
    
  3. 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)
    
  4. $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 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>'
    
  5. New-AzResourceGroupDeployment cmdlet'ini kullanarak özel görüntüyü oluşturun. <Özel görüntü adını> 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
    

Tam PowerShell betiği

Ö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'si>
  • <ö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

Sonraki adımlar