Creare una macchina virtuale Linux da un disco personalizzato usando l'interfaccia della riga di comando di Azure 2.0

Questo articolo illustra come caricare un disco rigido virtuale personalizzato o copiare un disco rigido virtuale esistente in Azure e creare nuove macchine virtuali Linux dal disco personalizzato. È possibile installare e configurare una distribuzione Linux in base ai propri requisiti e quindi usare il disco rigido virtuale per creare rapidamente una nuova macchina virtuale di Azure.

Se si desidera creare più macchine virtuali dal disco personalizzato, si deve creare un'immagine dal disco rigido virtuale o dalla macchina virtuale. Per altre informazioni vedere Creare un'immagine personalizzata di una macchina virtuale di Azure tramite l'interfaccia della riga di comando.

Sono disponibili due opzioni:

Comandi rapidi

Quando si crea una nuova macchina virtuale usando az vm create da un disco specializzato o personalizzato, collegare il disco (--attach-os-disk) anziché specificare un'immagine personalizzata o del marketplace (--image). L'esempio seguente crea una macchina virtuale denominata myVM usando il disco gestito denominato myManagedDisk creato dal disco rigido virtuale personalizzato:

az vm create --resource-group myResourceGroup --location eastus --name myVM \
   --os-type linux --attach-os-disk myManagedDisk

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 di PowerShell Convert-VHD. 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 .

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

Preparare la macchina virtuale

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

Opzione 1: caricare un disco rigido virtuale

È possibile caricare un disco rigido virtuale personalizzato in esecuzione in un computer locale o che è stato esportato da un altro cloud. Per usare il disco rigido virtuale per creare una nuova macchina virtuale di Azure, è necessario caricare il disco rigido virtuale in un account di archiviazione e creare un disco gestito dal disco rigido virtuale.

Creare un gruppo di risorse

Prima di caricare il disco personalizzato e creare le VM, è necessario creare un gruppo di risorse con az group create.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località eastus: Panoramica di Azure Managed Disks

az group create \
    --name myResourceGroup \
    --location eastus

Creare un account di archiviazione

Creare un account di archiviazione per il disco personalizzato e le VM con az storage account create.

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

az storage account create \
    --resource-group myResourceGroup \
    --location eastus \
    --name mystorageaccount \
    --kind Storage \
    --sku Standard_LRS

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 usate per autenticarsi nell'account di archiviazione, ad esempio per eseguire operazioni di scrittura. Ulteriori informazioni sulla gestione dell'accesso all'archiviazione sono disponibili qui. Visualizzare le chiavi di accesso con az storage account keys list.

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

az storage account keys list \
    --resource-group myResourceGroup \
    --account-name mystorageaccount

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 di key1 perché verrà usato per interagire con l'account di archiviazione nei passaggi successivi.

Creare un contenitore di archiviazione

Nello stesso modo in cui si creano directory diverse per organizzare in modo logico il file system locale si creano anche i contenitori con un account di archiviazione per organizzare i dischi. Un account di archiviazione può contenere un numero qualsiasi di contenitori. Creare un contenitore con az storage container create.

Nell'esempio seguente viene creato un contenitore denominato mydisks:

az storage container create \
    --account-name mystorageaccount \
    --name mydisks

Caricare il disco rigido virtuale

Caricare ora il disco personalizzato con az storage blob upload. Caricare e archiviare il disco personalizzato come BLOB di pagine.

Specificare la chiave di accesso e il contenitore creato nel passaggio precedente, quindi selezionare il percorso del disco personalizzato sul computer locale:

az storage blob upload --account-name mystorageaccount \
    --account-key key1 \
    --container-name mydisks \
    --type page \
    --file /path/to/disk/mydisk.vhd \
    --name myDisk.vhd

Il caricamento del disco rigido virtuale potrebbe richiedere qualche minuto.

Creare un disco gestito

Creare un disco gestito dal disco rigido virtuale con az disk create. Nell'esempio seguente viene creato un disco gestito denominato myManagedDisk dal disco rigido virtuale caricato nell'account di archiviazione e nel contenitore denominati:

az disk create \
    --resource-group myResourceGroup \
    --name myManagedDisk \
  --source https://mystorageaccount.blob.core.windows.net/mydisks/myDisk.vhd

Opzione 2: copiare una macchina virtuale esistente

È anche possibile creare la macchina virtuale personalizzata in Azure, copiare il disco del sistema operativo e associarlo a una nuova macchina virtuale per crearne un'altra copia. Questa è l'operazione corretta per il test, ma se si desidera usare una macchina virtuale di Azure esistente come modello per più macchine virtuali nuove, è effettivamente necessario creare un'immagine. Per altre informazioni sulla creazione di un'immagine da una macchina virtuale di Azure esistente, vedere Creare un'immagine personalizzata di una macchina virtuale di Azure tramite l'interfaccia della riga di comando

Creare uno snapshot

Questo esempio crea uno snapshot di una macchina virtuale denominata myVM nel gruppo di risorse myResourceGroup e uno snapshot denominato osDiskSnapshot.

osDiskId=$(az vm show -g myResourceGroup -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv)
az snapshot create \
    -g myResourceGroup \
    --source "$osDiskId" \
    --name osDiskSnapshot

Creare il disco gestito

Creare un nuovo disco gestito dallo snapshot.

Ottenere l'ID dello snapshot. In questo esempio, lo snapshot è denominato osDiskSnapshot ed è nel gruppo di risorse myResourceGroup.

snapshotId=$(az snapshot show --name osDiskSnapshot --resource-group myResourceGroup --query [id] -o tsv)

Creare il disco gestito. In questo esempio, si creerà un disco gestito denominato myManagedDisk dallo snapshot che ha una dimensione di 128 GB nell'archiviazione standard.

az disk create \
    --resource-group myResourceGroup \
    --name myManagedDisk \
    --sku Standard_LRS \
    --size-gb 128 \
    --source $snapshotId

Creare la VM

A questo punto, creare la macchina virtuale con az vm create e collegare (--attach-os-disk) il disco gestito come disco del sistema operativo. L'esempio seguente crea una macchina virtuale denominata myNewVM usando il disco gestito creato dal disco rigido virtuale caricato:

az vm create \
    --resource-group myResourceGroup \
    --location eastus \
    --name myNewVM \
    --os-type linux \
    --attach-os-disk myManagedDisk

Dovrebbe essere possibile accedere con SSH nella macchina virtuale usando le credenziali della macchina virtuale di origine.

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.