Creare un'immagine personalizzata da un file VHD con PowerShell
In Azure DevTest Labs è possibile usare immagini personalizzate per:
- Creare una macchina virtuale da un file VHD con tutto il software necessario preinstallato.
- Creare rapidamente macchine virtuali, perché non è necessario installare tutto il software necessario nei computer di destinazione.
- Clonare una macchina virtuale creando un'immagine personalizzata da una macchina virtuale e quindi creando macchine virtuali basate su tale immagine.
Prerequisiti
Per eseguire questa esercitazione, è necessario un file VHD (Virtual Hard Disk) caricato nell'account Archiviazione di Azure per il lab in cui si vuole creare l'immagine personalizzata. Per caricare un file VHD nell'account di archiviazione, seguire le istruzioni riportate in uno di questi articoli:
- Caricare un file VHD usando l'utilità della riga di comando AzCopy.
- Caricare un file VHD usando Archiviazione di Microsoft Azure Explorer.
- Caricare un file VHD usando PowerShell.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Passaggi di PowerShell
La procedura seguente illustra come creare un'immagine personalizzata da un file VHD usando Azure PowerShell:
Al prompt dei comandi di PowerShell accedere all'account Azure con il cmdlet Connessione-AzAccount:
Connect-AzAccount
Selezionare la sottoscrizione di Azure con il cmdlet Select-AzSubscription . Sostituire <l'ID> sottoscrizione con il GUID dell'ID sottoscrizione.
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
Ottenere l'oggetto lab chiamando il cmdlet Get-AzResource . Sostituire il nome> del gruppo di risorse del <lab e <i segnaposto del nome> del lab con il proprio gruppo di risorse e i nomi dei lab.
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
Sostituire il segnaposto per la variabile $vhdUri con l'URI del file VHD caricato. È possibile ottenere l'URI del file VHD dalla relativa pagina BLOB nell'account di archiviazione del lab nel portale di Azure. Un esempio di URI del disco rigido virtuale è:
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
.$vhdUri = '<VHD URI>'
Creare l'immagine personalizzata usando il cmdlet New-AzResourceGroupDeployment . Sostituire i <segnaposto nome> immagine personalizzato e <descrizione> dell'immagine personalizzata con il nome e la descrizione desiderati.
$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
Script di PowerShell completo
La combinazione dei passaggi precedenti genera lo script di PowerShell seguente che crea un'immagine personalizzata da un file VHD. Per usare lo script, sostituire i segnaposto seguenti con i propri valori:
- <ID sottoscrizione>
- <nome del gruppo di risorse lab>
- <nome lab>
- <URI del disco rigido virtuale>
- <nome immagine personalizzata>
- <descrizione dell'immagine personalizzata>
# 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