Créer une image personnalisée à partir d’un fichier de disque dur virtuel avec PowerShell
Dans Azure DevTest Labs, vous pouvez utiliser des images personnalisées pour :
- Créer une machine virtuelle à partir d’un fichier de disque dur virtuel qui contient tous les logiciels dont vous avez besoin préinstallés.
- Créer rapidement des machines virtuelles, car vous n’avez pas besoin d’installer tous les logiciels requis sur les ordinateurs cibles.
- Cloner une machine virtuelle en créant une image personnalisée à partir d’une machine virtuelle, puis en créant des machines virtuelles basées sur cette image.
Prérequis
Pour suivre ce didacticiel, vous avez besoin d’un fichier de disque dur virtuel (VHD) chargé sur le compte stockage Azure pour le labo dans lequel vous souhaitez créer l’image personnalisée. Pour charger un fichier VHD sur votre compte de stockage, suivez les instructions de l’un des articles suivants :
- Chargez un fichier VHD à l’aide de l’utilitaire de ligne de commande AzCopy.
- Chargez un fichier VHD à l’aide de Explorateur Stockage Microsoft Azure.
- Chargez un fichier VHD à l’aide de PowerShell.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
étapes PowerShell
La procédure suivante décrit comment créer une image personnalisée à partir d’un fichier de disque dur virtuel à l’aide d’Azure PowerShell :
Lors d’une invite de commandes PowerShell, connectez-vous à votre compte Azure avec la cmdlet Connect-AzAccount :
Connect-AzAccount
Sélectionnez votre abonnement Azure avec la cmdlet Select-AzSubscription. Remplacez <ID d’abonnement> par l’ID de votre abonnement.
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
Récupérez l’objet de laboratoire en appelant l’applet de commande Get-AzResource. Remplacez les espaces réservés <nom du groupe de ressources du labo> et <nom du labo> par les noms de vos propres groupe de ressources et labo.
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
Remplacez l’espace réservé à la variable $vhdUri par l’URI de votre fichier VHD chargé. Vous pouvez récupérer l’URI du fichier VHD à partir de sa page blob dans le compte de stockage du labo dans le Portail Azure. Voici un exemple d’URI de disque dur virtuel :
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
.$vhdUri = '<VHD URI>'
Créez l’image personnalisée à l’aide de la cmdlet New-AzResourceGroupDeployment. Remplacez les espaces réservés <nom de l’image personnalisée> et <description de l’image personnalisée> par le nom et la description de votre choix.
$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
Compléter le script PowerShell
La combinaison des étapes précédentes produit le script PowerShell suivant qui crée une image personnalisée à partir d’un fichier VHD. Pour utiliser le script, remplacez les espaces réservés suivants par vos propres valeurs :
- <ID d'abonnement>
- <nom du groupe de ressources du labo>
- <nom du labo>
- <URI VHD>
- <nom de l’image personnalisée>
- <description de l’image personnalisée>
# 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