Caricare e creare una VM Linux da un'immagine disco personalizzata usando l'interfaccia della riga di comando di Azure 1.0Upload and create a Linux VM from custom disk image by using the Azure CLI 1.0

Questo articolo illustra come caricare un disco rigido virtuale su Azure usando il modello di distribuzione Resource Manager e come creare le VM Linux da questa immagine personalizzata.This article shows you how to upload a virtual hard disk (VHD) to Azure using the Resource Manager deployment model and create Linux VMs from this custom image. Questa funzionalità consente di installare e configurare una distribuzione Linux in base ai propri requisiti e quindi di usare il disco rigido virtuale per creare rapidamente macchine virtuali di Azure.This functionality allows you to install and configure a Linux distro to your requirements and then use that VHD to quickly create Azure virtual machines (VMs).

Versioni dell'interfaccia della riga di comando per completare l'attivitàCLI versions to complete the task

È possibile completare l'attività usando una delle versioni seguenti dell'interfaccia della riga di comando:You can complete the task using one of the following CLI versions:

Comandi rapidiQuick commands

Se si vuole eseguire rapidamente l'attività, la sezione seguente indica in dettaglio i comandi base per caricare una VM in Azure.If you need to quickly accomplish the task, the following section details the base commands to upload a VM to Azure. Altre informazioni dettagliate e il contesto per ogni passaggio sono disponibili nelle sezioni successive del documento, a partire da qui.More detailed information and context for each step can be found the rest of the document, starting here.

Controllare di aver effettuato l'accesso tramite l'interfaccia della riga di comando di Azure 1.0 e di usare la modalità Resource Manager:Make sure that you have the Azure CLI 1.0 logged in and using Resource Manager mode:

azure config mode arm

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati.In the following examples, replace example parameter names with your own values. I nomi dei parametri di esempio includono myResourceGroup, mystorageaccount e myimages.Example parameter names included myResourceGroup, mystorageaccount, and myimages.

Creare prima un gruppo di risorse.First, create a resource group. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella località WestUs:The following example creates a resource group named myResourceGroup in the WestUs location:

azure group create myResourceGroup --location "WestUS"

Creare un account di archiviazione in cui salvare i dischi virtuali.Create a storage account to hold your virtual disks. Nell'esempio seguente viene creato un nuovo account di archiviazione denominato mystorageaccount:The following example creates a storage account named mystorageaccount:

azure storage account create mystorageaccount --resource-group myResourceGroup \
    --location "WestUS" --kind Storage --sku-name PLRS

Elencare le chiavi di accesso per l'account di archiviazione.List the access keys for your storage account. Annotare il valore di key1:Make a note of key1:

azure storage account keys list mystorageaccount --resource-group myResourceGroup

Creare un contenitore nell'account di archiviazione usando la chiave di archiviazione ottenuta.Create a container within your storage account using the storage key you obtained. Nell'esempio seguente viene creato un contenitore denominato myimages usando il valore della chiave di archiviazione da key1:The following example creates a container named myimages using the storage key value from key1:

azure storage container create --account-name mystorageaccount \
    --account-key key1 --container myimages

Caricare infine il disco rigido virtuale nel contenitore creato.Finally, upload your VHD to the container you created. Specificare il percorso locale per il disco rigido virtuale in /path/to/disk/mydisk.vhd:Specify the local path to your VHD under /path/to/disk/mydisk.vhd:

azure storage blob upload --blobtype page --account-name mystorageaccount \
    --account-key key1 --container myimages /path/to/disk/mydisk.vhd

È ora possibile creare una macchina virtuale dal disco virtuale caricato utilizzando un modello di Resource Manager.You can now create a VM from your uploaded virtual disk using a Resource Manager template. È anche possibile utilizzare l'interfaccia della riga di comando specificando l'URI sul disco (--image-urn).You can also use the CLI by specifying the URI to your disk (--image-urn). L'esempio seguente crea una VM denominata myVM usando il disco virtuale caricato in precedenza:The following example creates a VM named myVM using the virtual disk previously uploaded:

azure vm create myVM -l "WestUS" --resource-group myResourceGroup \
    --image-urn https://mystorageaccount.blob.core.windows.net/myimages/mydisk.vhd

L'account di archiviazione di destinazione deve essere lo stesso in cui è stato caricato il disco virtuale.The destination storage account has to be the same as where you uploaded your virtual disk to. È inoltre necessario specificare tutti i parametri aggiuntivi richiesti dal comando azure vm create , ad esempio rete virtuale, indirizzo IP pubblico, nome utente e chiavi SSH, oppure rispondere ai messaggi inerenti.You also need to specify, or answer prompts for, all the additional parameters required by the azure vm create command such as virtual network, public IP address, username, and SSH keys. Sono disponibili altre informazioni sui parametri di Resource Manager per l'interfaccia della riga di comando.You can read more about the available CLI Resource Manager parameters.

RequisitiRequirements

Per completare la procedura seguente, è necessario:To complete the following steps, you need:

Nota

Il formato VHDX più recente non è supportato in Azure.The newer VHDX format is not supported in Azure. Quando si crea una VM, specificare VHD come formato.When you create a VM, specify VHD as the format. Se necessario, è possibile convertire i dischi VHDX nel formato VHD usando qemu-img convert o il cmdlet Convert-VHD di PowerShell.If needed, you can convert VHDX disks to VHD using qemu-img convert or the Convert-VHD PowerShell cmdlet. Inoltre, Azure non supporta il caricamento di VHD dinamici, pertanto è necessario convertire tali dischi in VHD statici prima del caricamento.Further, Azure does not support uploading dynamic VHDs, so you need to convert such disks to static VHDs before uploading. Per convertire dischi dinamici durante il processo di caricamento in Azure, sono disponibili strumenti come Azure VHD Utilities for GO .You can use tools such as Azure VHD Utilities for GO to convert dynamic disks during the process of uploading to Azure.

  • Le VM create da un'immagine personalizzata devono trovarsi nello stesso account di archiviazione dell'immagine stessa.VMs created from your custom image must reside in the same storage account as the image itself
    • Creare un account di archiviazione e un contenitore in cui inserire l'immagine personalizzata e le VM create.Create a storage account and container to hold both your custom image and created VMs
    • Una volta create tutte le VM, è possibile eliminare l'immagine.After you have created all your VMs, you can safely delete your image

Controllare di aver effettuato l'accesso tramite l'interfaccia della riga di comando di Azure 1.0 e di usare la modalità Resource Manager:Make sure that you have the Azure CLI 1.0 logged in and using Resource Manager mode:

azure config mode arm

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati.In the following examples, replace example parameter names with your own values. I nomi dei parametri di esempio includono myResourceGroup, mystorageaccount e myimages.Example parameter names included myResourceGroup, mystorageaccount, and myimages.

Preparare l'immagine da caricarePrepare the image to be uploaded

Azure supporta svariate distribuzioni di Linux (vedere la sezione Distribuzioni approvate).Azure supports various Linux distributions (see Endorsed Distributions). Gli articoli seguenti forniscono le istruzioni per preparare le diverse distribuzioni Linux supportate in Azure:The following articles guide you through how to prepare the various Linux distributions that are supported on Azure:

Vedere anche le Note generali sull'installazione di Linux per suggerimenti più generali sulla preparazione di immagini Linux per Azure.Also see the Linux Installation Notes for more general tips on preparing Linux images for Azure.

Nota

Il Contratto di Servizio per la piattaforma Azure è applicabile alle VM che eseguono Linux solo quando una distribuzione approvata viene usata con i dettagli di configurazione specificati nella sezione "Versioni e distribuzioni supportate" in Distribuzioni di Linux supportate da Azure.The Azure platform SLA applies to VMs running Linux only when one of the endorsed distributions is used with the configuration details as specified under 'Supported Versions' in Linux on Azure-Endorsed Distributions.

Creare un gruppo di risorseCreate a resource group

I gruppi di risorse riuniscono in modo logico tutte le risorse di Azure a supporto delle macchine virtuali, come l'archiviazione e la rete virtuale.Resource groups logically bring together all the Azure resources to support your virtual machines, such as the virtual networking and storage. Ulteriori informazioni sui gruppi di risorse di Azure sono disponibili qui.Read more about Azure resource groups here. Prima di caricare l'immagine disco personalizzata e creare le VM, è necessario creare un gruppo di risorse.Before uploading your custom disk image and creating VMs, you first need to create a resource group.

Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella località WestUS:The following example creates a resource group named myResourceGroup in the WestUS location:

azure group create myResourceGroup --location "WestUS"

Creare un account di archiviazioneCreate a storage account

Le VM vengono archiviate come BLOB di pagine all'interno di un account di archiviazione.VMs are stored as page blobs within a storage account. Ulteriori informazioni sull' archiviazione BLOB di Azure sono disponibili qui.Read more about Azure blob storage here. Creare un account di archiviazione per l'immagine disco personalizzata e le VM.You create a storage account for your custom disk image and VMs. Le VM create a partire dall'immagine disco personalizzata devono trovarsi nello stesso account di archiviazione dell'immagine.Any VMs that you create from your custom disk image need to be in the same storage account as that image.

Nell'esempio seguente viene creato un account di archiviazione denominato mystorageaccount nel gruppo di risorse creato in precedenza:The following example creates a storage account named mystorageaccount in the resource group previously created:

azure storage account create mystorageaccount --resource-group myResourceGroup \
    --location "WestUS" --kind Storage --sku-name PLRS

Ottenere chiavi degli account di archiviazioneList storage account keys

Azure genera due chiavi di accesso a 512 bit per ogni account di archiviazione.Azure generates two 512-bit access keys for each storage account. Queste chiavi di accesso vengono utilizzate per autenticarsi nell'account di archiviazione, ad esempio per eseguire operazioni di scrittura.These access keys are used when authenticating to the storage account, such as to carry out write operations. Ulteriori informazioni sulla gestione dell'accesso all'archiviazione sono disponibili qui.Read more about managing access to storage here. Le chiavi di accesso possono essere visualizzate tramite il comando azure storage account keys list .You can view access keys with the azure storage account keys list command.

Visualizzare le chiavi di accesso per l'account di archiviazione creato:View the access keys for the storage account you created:

azure storage account keys list mystorageaccount --resource-group myResourceGroup

L'output è simile a:The output is similar to:

info:    Executing command storage account keys list
+ Getting storage account keys
data:    Name  Key                                                                                       Permissions
data:    ----  ----------------------------------------------------------------------------------------  -----------
data:    key1  d4XAvZzlGAgWdvhlWfkZ9q4k9bYZkXkuPCJ15NTsQOeDeowCDAdB80r9zA/tUINApdSGQ94H9zkszYyxpe8erw==  Full
data:    key2  Ww0T7g4UyYLaBnLYcxIOTVziGAAHvU+wpwuPvK4ZG0CDFwu/mAxS/YYvAQGHocq1w7/3HcalbnfxtFdqoXOw8g==  Full
info:    storage account keys list command OK

Prendere nota dell'elemento key1 perché verrà utilizzato per interagire con l'account di archiviazione nei passaggi successivi.Make a note of key1 as you will use it to interact with your storage account in the next steps.

Creare un contenitore di archiviazioneCreate a storage container

Come si creano directory diverse per organizzare in modo logico il file system locale, per organizzare i dischi virtuali e le immagini all'interno di un account di archiviazione vengono creati contenitori.In the same way that you create different directories to logically organize your local file system, you create containers within a storage account to organize your virtual disks and images. Un account di archiviazione può contenere un numero qualsiasi di contenitori.A storage account can contain any number of containers.

L'esempio seguente crea un nuovo contenitore denominato myimages, specificando la chiave di accesso ricavata nel passaggio precedente (key1):The following example creates a container named myimages, specifying the access key obtained in the previous step (key1):

azure storage container create --account-name mystorageaccount \
    --account-key key1 --container myimages

Caricare il file VHD.Upload VHD

Ora è effettivamente possibile caricare l'immagine disco personalizzata.Now you can actually upload your custom disk image. Come con tutti i dischi virtuali utilizzati dalle VM, l'immagine disco personalizzata viene caricata e archiviata come BLOB di pagine.As with all virtual disks used by VMs, you upload and store your custom disk image as a page blob.

Specificare la chiave di accesso e il contenitore creato nel passaggio precedente, quindi selezionare il percorso dell'immagine disco personalizzata sul computer locale:Specify your access key, the container you created in the previous step, and then the path to the custom disk image on your local computer:

azure storage blob upload --blobtype page --account-name mystorageaccount \
    --account-key key1 --container myimages /path/to/disk/mydisk.vhd

Creare una VM in base a un'immagine personalizzataCreate VM from custom image

Quando si creano le macchine virtuali dall'immagine disco personalizzata, specificare l'URI sull'immagine disco.When you create VMs from your custom disk image, specify the URI to the disk image. Assicurarsi che l'account di archiviazione corrisponda alla destinazioni in cui viene archiviata l'immagine disco personalizzata.Ensure that the destination storage account matches where your custom disk image is stored. È possibile creare la VM tramite l'interfaccia della riga di comando di Azure o il modello JSON di Resource Manager.You can create your VM using the Azure CLI or Resource Manager JSON template.

Creare una VM Linux usando l'interfaccia della riga di comando di AzureCreate a VM using the Azure CLI

Specificare il parametro --image-urn con il comando azure vm create in modo da puntare all'immagine disco personalizzata.You specify the --image-urn parameter with the azure vm create command to point to your custom disk image. Assicurarsi che --storage-account-name corrisponda all'account di archiviazione in cui è archiviata l'immagine disco personalizzata.Ensure that --storage-account-name matches the storage account where your custom disk image is stored. Non è necessario utilizzare lo stesso contenitore come immagine disco personalizzata per archiviare le macchine virtuali.You do not have to use the same container as the custom disk image to store your VMs. Assicurarsi di creare qualsiasi contenitore aggiuntivo seguendo la stessa procedura utilizzata in precedenza prima di caricare le immagini disco personalizzate.Make sure to create any additional containers in the same way as the earlier steps before uploading your custom disk images.

L'esempio seguente crea una VM denominata myVM dall'immagine disco personalizzata:The following example creates a VM named myVM from your custom disk image:

azure vm create myVM -l "WestUS" --resource-group myResourceGroup \
    --image-urn https://mystorageaccount.blob.core.windows.net/myimages/mydisk.vhd
    --storage-account-name mystorageaccount

È ancora necessario specificare tutti i parametri aggiuntivi richiesti dal comando azure vm create , ad esempio rete virtuale, indirizzo IP pubblico, nome utente e chiavi SSH, oppure rispondere ai messaggi inerenti.You still need to specify, or answer prompts for, all the additional parameters required by the azure vm create command such as virtual network, public IP address, username, and SSH keys. Sono disponibili altre informazioni sui parametri di Resource Manager per l'interfaccia della riga di comando.Read more about the available CLI Resource Manager parameters.

Creare una VM utilizzando un modello JSONCreate a VM using a JSON template

I modelli di Azure Resource Manager sono file JavaScript Object Notation (JSON) che definiscono l'ambiente che si desidera generare.Azure Resource Manager templates are JavaScript Object Notation (JSON) files that define the environment you wish to build. I modelli sono suddivisi in diversi provider di risorse, ad esempio calcolo o rete.The templates are broken down in to different resource providers such as compute or network. È possibile utilizzare i modelli esistenti o crearne di nuovi.You can use existing templates or write your own. Altre informazioni sull' uso di Resource Manager e relativi modelli.Read more about using Resource Manager and templates.

Nel provider Microsoft.Compute/virtualMachines del modello, è presente un nodo storageProfile contenente i dettagli sulla configurazione della VM.Within the Microsoft.Compute/virtualMachines provider of your template, you have a storageProfile node that contains the configuration details for your VM. I due parametri principali da modificare sono gli URI image e vhd, che puntano all'immagine disco e al disco virtuale della nuova VM.The two main parameters to edit are the image and vhd URIs that point to your custom disk image and your new VM's virtual disk. Di seguito viene mostrato un esempio di JSON per l'utilizzo di un'immagine disco personalizzata:The following shows an example of the JSON for using a custom disk image:

"storageProfile": {
          "osDisk": {
            "name": "myVM",
            "osType": "Linux",
            "caching": "ReadWrite",
            "createOption": "FromImage",
            "image": {
              "uri": "https://mystorageaccount.blob.core.windows.net/myimages/mydisk.vhd"
            },
            "vhd": {
              "uri": "https://mystorageaccount.blob.core.windows.net/vhds/newvmname.vhd"
            }
          }

È possibile usare questo modello esistente per creare una VM da un'immagine personalizzata oppure consultare le informazioni sulla creazione di modelli di Azure Resource Manager personalizzati.You can use this existing template to create a VM from a custom image or read about creating your own Azure Resource Manager templates.

Dopo aver configurato un modello, creare le VM tramite il comando azure group deployment create .Once you have a template configured, you create your VMs using the azure group deployment create command. Specificare l'URI del modello JSON con il parametro --template-uri :Specify the URI of your JSON template with the --template-uri parameter:

azure group deployment create --resource-group myResourceGroup
    --template-uri https://uri.to.template/mytemplate.json

Se si dispone di un file JSON archiviato localmente nel computer in uso, è possibile utilizzare il parametro alternativo --template-file :If you have a JSON file stored locally on your computer, you can use the --template-file parameter instead:

azure group deployment create --resource-group myResourceGroup
    --template-file /path/to/mytemplate.json

Passaggi successiviNext steps

Dopo avere preparato e caricato il disco rigido virtuale, è possibile ottenere altre informazioni sull' uso di Azure Resource Manager e dei modelli.After you have prepared and uploaded your custom virtual disk, you can read more about using Resource Manager and templates. È anche consigliabile aggiungere un disco dati alle nuove VM.You may also want to add a data disk to your new VMs. Se nelle VM sono in esecuzione applicazioni a cui si deve accedere, assicurarsi di aprire le porte e gli endpoint.If you have applications running on your VMs that you need to access, be sure to open ports and endpoints.