Esercitazione: creare un'immagine personalizzata di una macchina virtuale di Azure con Azure PowerShellTutorial: Create a custom image of an Azure VM with Azure PowerShell

Le immagini personalizzate sono come le immagini di marketplace, ma si possono creare autonomamente.Custom images are like marketplace images, but you create them yourself. Le immagini personalizzate possono essere usate per le configurazioni di avvio, ad esempio il precaricamento e le configurazioni di applicazioni e altre configurazioni del sistema operativo.Custom images can be used to bootstrap configurations such as preloading applications, application configurations, and other OS configurations. In questa esercitazione viene creata un'immagine personalizzata di una macchina virtuale di Azure.In this tutorial, you create your own custom image of an Azure virtual machine. Si apprenderà come:You learn how to:

  • Eseguire Sysprep e generalizzare le macchine virtualiSysprep and generalize VMs
  • Creare un'immagine personalizzataCreate a custom image
  • Creare una VM da un'immagine personalizzataCreate a VM from a custom image
  • Elencare tutte le immagini nella sottoscrizioneList all the images in your subscription
  • Eliminare un'immagineDelete an image

Prima di iniziareBefore you begin

La procedura riportata di seguito illustra come prendere una VM esistente e convertirla in un'immagine personalizzata riutilizzabile che è possibile usare per creare nuove istanze di VM.The steps below detail how to take an existing VM and turn it into a re-usable custom image that you can use to create new VM instances.

Per completare l'esempio contenuto in questa esercitazione è necessario disporre di una macchina virtuale esistente.To complete the example in this tutorial, you must have an existing virtual machine. Se necessario, questo script di esempio può crearne una appositamente.If needed, this script sample can create one for you. Quando si esegue l'esercitazione, sostituire i nomi del gruppo di risorse e delle VM dove necessario.When working through the tutorial, replace the resource group and VM names where needed.

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.It has common Azure tools preinstalled and configured to use with your account. È sufficiente fare clic su Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Esistono alcuni modi per avviare Cloud Shell:There are a few ways to launch the Cloud Shell:

Fare clic su Prova nell'angolo superiore destro di un blocco di codice.Click Try It in the upper right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/powershell
Fare clic sul pulsante Cloud Shell nel menu in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper right of the Azure portal. Cloud Shell nel portaleCloud Shell in the portal

Se si sceglie di installare e usare PowerShell in locale, per questa esercitazione è necessario il modulo AzureRM versione 5.7.0 o successiva.If you choose to install and use the PowerShell locally, this tutorial requires the AzureRM module version 5.7.0 or later. Eseguire Get-Module -ListAvailable AzureRM per trovare la versione.Run Get-Module -ListAvailable AzureRM to find the version. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module.

Preparare la VMPrepare VM

Per creare un'immagine di una macchina virtuale, è necessario preparare la VM generalizzandola, eseguendo la deallocazione e contrassegnando la VM di origine come generalizzata in Azure.To create an image of a virtual machine, you need to prepare the VM by generalizing the VM, deallocating, and then marking the source VM as generalized in Azure.

Generalizzare la macchina virtuale Windows con SysprepGeneralize the Windows VM using Sysprep

Sysprep rimuove anche tutte le informazioni sull'account personale e prepara la VM da usare come immagine.Sysprep removes all your personal account information, among other things, and prepares the machine to be used as an image. Per altre informazioni su Sysprep, vedere Come usare Sysprep: Introduzione.For details about Sysprep, see How to Use Sysprep: An Introduction.

  1. Connettersi alla macchina virtuale.Connect to the virtual machine.
  2. Aprire la finestra del prompt dei comandi come amministratore.Open the Command Prompt window as an administrator. Cambiare la directory in %windir%\system32\sysprep e quindi eseguire sysprep.exe.Change the directory to %windir%\system32\sysprep, and then run sysprep.exe.
  3. Nella finestra di dialogo Utilità preparazione sistema selezionare Passare alla Configurazione guidata e verificare che la casella di controllo Generalizza sia selezionata.In the System Preparation Tool dialog box, select Enter System Out-of-Box Experience (OOBE), and make sure that the Generalize check box is selected.
  4. In Opzioni di arresto selezionare Arresta il sistema e fare clic su OK.In Shutdown Options, select Shutdown and then click OK.
  5. Al termine, Sysprep arresta la macchina virtuale.When Sysprep completes, it shuts down the virtual machine. Non riavviare la VM.Do not restart the VM.

Deallocare e contrassegnare la VM come generalizzataDeallocate and mark the VM as generalized

Per creare un'immagine, la VM deve essere deallocata e contrassegnata come generalizzata in Azure.To create an image, the VM needs to be deallocated and marked as generalized in Azure.

Deallocare la VM usando Stop-AzureRmVM.Deallocated the VM using Stop-AzureRmVM.

Stop-AzureRmVM -ResourceGroupName myResourceGroup -Name myVM -Force

Impostare lo stato della macchina virtuale su -Generalized usando Set-AzureRmVm.Set the status of the virtual machine to -Generalized using Set-AzureRmVm.

Set-AzureRmVM -ResourceGroupName myResourceGroup -Name myVM -Generalized

Creare l'immagineCreate the image

A questo punto è possibile creare un'immagine della VM usando New-AzureRmImageConfig e New-AzureRmImage.Now you can create an image of the VM by using New-AzureRmImageConfig and New-AzureRmImage. Nell'esempio seguente viene creata un'immagine denominata myImage dalla VM denominata myVM.The following example creates an image named myImage from a VM named myVM.

Trovare la macchina virtuale.Get the virtual machine.

$vm = Get-AzureRmVM -Name myVM -ResourceGroupName myResourceGroup

Creare la configurazione dell'immagine.Create the image configuration.

$image = New-AzureRmImageConfig -Location EastUS -SourceVirtualMachineId $vm.ID 

Creare l'immagine.Create the image.

New-AzureRmImage -Image $image -ImageName myImage -ResourceGroupName myResourceGroup

Creare VM dall'immagineCreate VMs from the image

Ora che si dispone di un'immagine, è possibile creare una o più nuove VM dall'immagine.Now that you have an image, you can create one or more new VMs from the image. La creazione di una macchina virtuale da un'immagine personalizzata è un'operazione simile alla creazione di una macchina virtuale con un'immagine del Marketplace.Creating a VM from a custom image is similar to creating a VM using a Marketplace image. Quando si usa un'immagine del Marketplace, è necessario immettere le informazioni sull'immagine, il provider dell'immagine, l'offerta, lo SKU e la versione.When you use a Marketplace image, you have to provide the information about the image, image provider, offer, SKU, and version. Usando il parametro semplificato impostato per il cmdlet New-AzureRMVM, è sufficiente specificare il nome dell'immagine personalizzata, purché sia nello stesso gruppo di risorse.Using the simplified parameter set for the New-AzureRMVM cmdlet, you just need to provide the name of the custom image as long as it is in the same resource group.

Questo esempio crea una VM denominata myVMfromImage dall'immagine denominata myImage in myResourceGroup.This example creates a VM named myVMfromImage from the myImage, in the myResourceGroup.

New-AzureRmVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVMfromImage" `
    -ImageName "myImage" `
    -Location "East US" `
    -VirtualNetworkName "myImageVnet" `
    -SubnetName "myImageSubnet" `
    -SecurityGroupName "myImageNSG" `
    -PublicIpAddressName "myImagePIP" `
    -OpenPorts 3389

Gestione delle immaginiImage management

Di seguito sono riportati alcuni esempi di attività comuni di immagini gestite e della relativa modalità di completamento tramite PowerShell.Here are some examples of common managed image tasks and how to complete them using PowerShell.

Elencare tutte le immagini per nome.List all images by name.

$images = Get-AzureRMResource -ResourceType Microsoft.Compute/images 
$images.name

Eliminare un'immagine.Delete an image. Questo esempio elimina l'immagine denominata myOldImage da myResourceGroup.This example deletes the image named myOldImage from the myResourceGroup.

Remove-AzureRmImage `
    -ImageName myOldImage `
    -ResourceGroupName myResourceGroup

Passaggi successiviNext steps

In questa esercitazione è stata creata un'immagine di macchina virtuale personalizzata.In this tutorial, you created a custom VM image. Si è appreso come:You learned how to:

  • Eseguire Sysprep e generalizzare le macchine virtualiSysprep and generalize VMs
  • Creare un'immagine personalizzataCreate a custom image
  • Creare una VM da un'immagine personalizzataCreate a VM from a custom image
  • Elencare tutte le immagini nella sottoscrizioneList all the images in your subscription
  • Eliminare un'immagineDelete an image

Passare all'esercitazione successiva per la descrizione delle macchine virtuali a disponibilità elevata.Advance to the next tutorial to learn about how highly available virtual machines.