Tworzenie obrazu niestandardowego na podstawie pliku VHD za pomocą programu PowerShell
W usłudze Azure DevTest Labs można używać 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
Do pracy 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:
- Przekaż plik VHD przy użyciu narzędzia wiersza polecenia AzCopy.
- Przekaż plik VHD przy użyciu Eksplorator usługi Microsoft Azure Storage.
- Przekaż plik VHD przy użyciu programu PowerShell.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. 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 procedurę tworzenia obrazu niestandardowego z pliku VHD przy użyciu programu Azure PowerShell:
W wierszu polecenia programu PowerShell zaloguj się do konta platformy Azure przy użyciu polecenia cmdlet Połączenie-AzAccount:
Connect-AzAccount
Wybierz subskrypcję platformy Azure za pomocą polecenia cmdlet Select-AzSubscription . Zastąp identyfikator <> subskrypcji identyfikatorem GUID subskrypcji.
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
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 laboratorium.
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
Zastąp symbol zastępczy zmiennej $vhdUri identyfikatorem URI przekazanego pliku VHD. Identyfikator URI pliku VHD można uzyskać ze strony jej obiektu blob na koncie magazynu laboratorium w witrynie Azure Portal. Przykładowy identyfikator URI wirtualnego dysku twardego to:
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
.$vhdUri = '<VHD URI>'
Utwórz obraz niestandardowy przy użyciu polecenia cmdlet New-AzResourceGroupDeployment . Zastąp nazwy> obrazu niestandardowego <i <symbolami zastępczymi opisu> obrazu niestandardowego 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