Caricare e creare una VM Linux da un'immagine disco personalizzata usando l'interfaccia della riga di comando di Azure 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. 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.

Versioni dell'interfaccia della riga di comando per completare l'attività

È possibile completare l'attività usando una delle versioni seguenti dell'interfaccia della riga di comando:

Comandi rapidi

Se si vuole eseguire rapidamente l'attività, la sezione seguente indica in dettaglio i comandi base per caricare una VM in Azure. Altre informazioni dettagliate e il contesto per ogni passaggio sono disponibili nelle sezioni successive del documento, a partire da qui.

Controllare di aver effettuato l'accesso tramite l'interfaccia della riga di comando di Azure 1.0 e di usare la modalità Resource Manager:

azure config mode arm

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati. I nomi dei parametri di esempio includono myResourceGroup, mystorageaccount e myimages.

Creare prima un gruppo di risorse. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella località WestUs:

azure group create myResourceGroup --location "WestUS"

Creare un account di archiviazione in cui salvare i dischi virtuali. Nell'esempio seguente viene creato un nuovo account di archiviazione denominato 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. Annotare il valore di key1:

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

Creare un contenitore nell'account di archiviazione usando la chiave di archiviazione ottenuta. Nell'esempio seguente viene creato un contenitore denominato myimages usando il valore della chiave di archiviazione da key1:

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

Caricare infine il disco rigido virtuale nel contenitore creato. Specificare il percorso locale per il disco rigido virtuale in /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. È anche possibile utilizzare l'interfaccia della riga di comando specificando l'URI sul disco (--image-urn). L'esempio seguente crea una VM denominata myVM usando il disco virtuale caricato in precedenza:

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. È 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. Sono disponibili altre informazioni sui parametri di Resource Manager per l'interfaccia della riga di comando.

Requisiti

Per completare la procedura seguente, è necessario:

Nota

Il formato VHDX più recente non è supportato in Azure. Quando si crea una VM, specificare VHD come formato. Se necessario, è possibile convertire i dischi VHDX nel formato VHD usando qemu-img convert o il cmdlet Convert-VHD di PowerShell. Inoltre, Azure non supporta il caricamento di VHD dinamici, pertanto è necessario convertire tali dischi in VHD statici prima del caricamento. Per convertire dischi dinamici durante il processo di caricamento in Azure, sono disponibili strumenti come Azure VHD Utilities for GO .

  • Le VM create da un'immagine personalizzata devono trovarsi nello stesso account di archiviazione dell'immagine stessa.
    • Creare un account di archiviazione e un contenitore in cui inserire l'immagine personalizzata e le VM create.
    • Una volta create tutte le VM, è possibile eliminare l'immagine.

Controllare di aver effettuato l'accesso tramite l'interfaccia della riga di comando di Azure 1.0 e di usare la modalità Resource Manager:

azure config mode arm

Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati. I nomi dei parametri di esempio includono myResourceGroup, mystorageaccount e myimages.

Preparare l'immagine da caricare

Azure supporta svariate distribuzioni di Linux (vedere la sezione Distribuzioni approvate). Gli articoli seguenti forniscono le istruzioni per preparare le diverse distribuzioni Linux supportate in Azure:

Vedere anche le Note generali sull'installazione di Linux per suggerimenti più generali sulla preparazione di immagini Linux per 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.

Creare un gruppo di risorse

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. Ulteriori informazioni sui gruppi di risorse di Azure sono disponibili qui. Prima di caricare l'immagine disco personalizzata e creare le VM, è necessario creare un gruppo di risorse.

Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella località WestUS:

azure group create myResourceGroup --location "WestUS"

Creare un account di archiviazione

Le VM vengono archiviate come BLOB di pagine all'interno di un account di archiviazione. Ulteriori informazioni sull' archiviazione BLOB di Azure sono disponibili qui. Creare un account di archiviazione per l'immagine disco personalizzata e le VM. Le VM create a partire dall'immagine disco personalizzata devono trovarsi nello stesso account di archiviazione dell'immagine.

Nell'esempio seguente viene creato un account di archiviazione denominato mystorageaccount nel gruppo di risorse creato in precedenza:

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

Ottenere chiavi degli account di archiviazione

Azure genera due chiavi di accesso a 512 bit per ogni account di archiviazione. Queste chiavi di accesso vengono utilizzate per autenticarsi nell'account di archiviazione, ad esempio per eseguire operazioni di scrittura. Ulteriori informazioni sulla gestione dell'accesso all'archiviazione sono disponibili qui. Le chiavi di accesso possono essere visualizzate tramite il comando azure storage account keys list .

Visualizzare le chiavi di accesso per l'account di archiviazione creato:

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

L'output è simile a:

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.

Creare un contenitore di archiviazione

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. Un account di archiviazione può contenere un numero qualsiasi di contenitori.

L'esempio seguente crea un nuovo contenitore denominato myimages, specificando la chiave di accesso ricavata nel passaggio precedente (key1):

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

Caricare il file VHD.

Ora è effettivamente possibile caricare l'immagine disco personalizzata. Come con tutti i dischi virtuali utilizzati dalle VM, l'immagine disco personalizzata viene caricata e archiviata come BLOB di pagine.

Specificare la chiave di accesso e il contenitore creato nel passaggio precedente, quindi selezionare il percorso dell'immagine disco personalizzata sul computer locale:

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 personalizzata

Quando si creano le macchine virtuali dall'immagine disco personalizzata, specificare l'URI sull'immagine disco. Assicurarsi che l'account di archiviazione corrisponda alla destinazioni in cui viene archiviata l'immagine disco personalizzata. È possibile creare la VM tramite l'interfaccia della riga di comando di Azure o il modello JSON di Resource Manager.

Creare una VM Linux usando l'interfaccia della riga di comando di Azure

Specificare il parametro --image-urn con il comando azure vm create in modo da puntare all'immagine disco personalizzata. Assicurarsi che --storage-account-name corrisponda all'account di archiviazione in cui è archiviata l'immagine disco personalizzata. Non è necessario utilizzare lo stesso contenitore come immagine disco personalizzata per archiviare le macchine virtuali. Assicurarsi di creare qualsiasi contenitore aggiuntivo seguendo la stessa procedura utilizzata in precedenza prima di caricare le immagini disco personalizzate.

L'esempio seguente crea una VM denominata myVM dall'immagine disco personalizzata:

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. Sono disponibili altre informazioni sui parametri di Resource Manager per l'interfaccia della riga di comando.

Creare una VM utilizzando un modello JSON

I modelli di Azure Resource Manager sono file JavaScript Object Notation (JSON) che definiscono l'ambiente che si desidera generare. I modelli sono suddivisi in diversi provider di risorse, ad esempio calcolo o rete. È possibile utilizzare i modelli esistenti o crearne di nuovi. Altre informazioni sull' uso di Resource Manager e relativi modelli.

Nel provider Microsoft.Compute/virtualMachines del modello, è presente un nodo storageProfile contenente i dettagli sulla configurazione della 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. Di seguito viene mostrato un esempio di JSON per l'utilizzo di un'immagine disco personalizzata:

"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.

Dopo aver configurato un modello, creare le VM tramite il comando azure group deployment create . Specificare l'URI del modello JSON con il parametro --template-uri :

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 :

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

Passaggi successivi

Dopo avere preparato e caricato il disco rigido virtuale, è possibile ottenere altre informazioni sull' uso di Azure Resource Manager e dei modelli. È anche consigliabile aggiungere un disco dati alle nuove VM. Se nelle VM sono in esecuzione applicazioni a cui si deve accedere, assicurarsi di aprire le porte e gli endpoint.