Tworzenie obrazu niestandardowego na podstawie pliku VHD za pomocą programu PowerShell

W Azure DevTest Labs można użyć obrazów niestandardowych do:

  • Utwórz maszynę wirtualną na podstawie pliku VHD, który ma wstępnie zainstalowane oprogramowanie.
  • Szybkie tworzenie maszyn wirtualnych, ponieważ nie trzeba instalować całego wymaganego oprogramowania na maszynach docelowych.
  • Sklonuj maszynę wirtualną, tworząc obraz niestandardowy na podstawie maszyny wirtualnej, a następnie tworząc maszyny wirtualne na podstawie tego obrazu.

Wymagania wstępne

Aby pracować z tym samouczkiem, potrzebny jest plik wirtualnego dysku twardego (VHD) przekazany do konta usługi Azure Storage dla laboratorium, w którym chcesz utworzyć obraz niestandardowy. Aby przekazać plik VHD na konto magazynu, postępuj zgodnie z instrukcjami w jednym z następujących artykułów:

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Kroki programu PowerShell

W poniższych krokach przedstawiono sposób tworzenia obrazu niestandardowego z pliku VHD przy użyciu Azure PowerShell:

  1. W wierszu polecenia programu PowerShell zaloguj się do konta platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount :

    Connect-AzAccount
    
  2. Wybierz subskrypcję platformy Azure za pomocą polecenia cmdlet Select-AzSubscription . Zastąp <identyfikator subskrypcji identyfikatorem> GUID subskrypcji.

    $subscriptionId = '<subscription ID>'
    Select-AzSubscription -SubscriptionId $subscriptionId
    
  3. Pobierz obiekt laboratorium, wywołując polecenie cmdlet Get-AzResource . Zastąp <nazwy> grupy zasobów laboratorium i <symbolami zastępczymi nazw> laboratorium własną grupą zasobów i nazwami laboratoriów.

    $labRg = '<lab resource group name>'
    $labName = '<lab name>'
    $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
    
  4. Zastąp symbol zastępczy zmiennej $vhdUri identyfikatorem URI przekazanego pliku VHD. Identyfikator URI pliku VHD można uzyskać ze strony obiektu blob na koncie magazynu laboratorium w Azure Portal. Przykładowy identyfikator URI dysku VHD to: https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd.

    $vhdUri = '<VHD URI>'
    
  5. Utwórz obraz niestandardowy przy użyciu polecenia cmdlet New-AzResourceGroupDeployment . Zastąp niestandardową <nazwę> obrazu i <symbole zastępcze opisu> niestandardowego obrazu nazwą i opisem.

    $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
    

Ukończ skrypt programu PowerShell

Połączenie powyższych kroków powoduje utworzenie następującego skryptu programu PowerShell, który tworzy obraz niestandardowy z pliku VHD. Aby użyć skryptu, zastąp następujące symbole zastępcze własnymi wartościami:

  • <identyfikator subskrypcji>
  • <nazwa grupy zasobów laboratorium>
  • <nazwa laboratorium>
  • <Identyfikator URI wirtualnego dysku twardego>
  • <niestandardowa nazwa obrazu>
  • <opis obrazu niestandardowego>
# 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

Następne kroki