Descrivere le opzioni disponibili per creare e gestire una macchina virtuale di Azure

Completato

Il portale di Azure è il modo più semplice di creare per la prima volta risorse come le macchine virtuali. Tuttavia, non si tratta necessariamente del modo più rapido o efficiente per lavorare con Azure, specialmente se si devono creare più risorse contemporaneamente. In questo caso, si creeranno decine di macchine virtuali per gestire attività diverse. Senza dubbio, crearle manualmente nel portale di Azure non è la soluzione ideale.

Verranno quindi illustrati altri modi per creare e amministrare risorse in Azure:

  • Modelli di Gestione risorse di Azure
  • Azure PowerShell
  • Interfaccia della riga di comando di Azure
  • API REST di Azure
  • SDK per client Azure
  • Estensioni di macchina virtuale di Azure
  • Servizi di Automazione di Azure

Modelli di Resource Manager

Si supponga di voler creare una copia di una macchina virtuale con le stesse impostazioni. È possibile creare un'immagine di macchina virtuale, caricarla in Azure e basarsi su di essa per la nuova macchina, ma si tratta di un processo inefficiente e che richiede molto tempo. Azure offre la possibilità di creare un modello da cui creare una copia esatta di una macchina virtuale.

I modelli di Resource Manager sono file JSON che definiscono le risorse che è necessario distribuire per la soluzione.

È possibile creare un modello di risorsa per la macchina virtuale. Nel menu della macchina virtuale, in Automazione selezionare Esporta modello.

Screenshot showing Export template option for a VM.

Nota

I criteri per le risorse incluse nella sandbox per questo modulo di Learn impediscono di esportare la macchina virtuale appena creata. Premesso ciò, un modello esportato è un file JSON facile da modificare. È possibile scaricare o salvare un modello per usarlo in un secondo momento o distribuire subito una nuova macchina virtuale basata su di esso. Ad esempio, si potrebbe creare una macchina virtuale da un modello in un ambiente di test e riscontrare che non è adatta a sostituire quella locale. È possibile eliminare il gruppo di risorse, azione che eliminerà tutte le risorse, perfezionare il modello e riprovare. Se si vogliono solo apportare modifiche alle risorse distribuite esistenti, è possibile modificare il modello usato per crearla e distribuirla nuovamente. Resource Manager modificherà le risorse in modo da correlarle al nuovo modello.

Dopo aver ottenuto il modello desiderato, è possibile usarlo per replicare facilmente più versioni dell'infrastruttura, ad esempio per la gestione temporanea e la produzione. È possibile impostare i parametri per i campi, ad esempio il nome della macchina virtuale, il nome di rete, il nome dell'account di archiviazione e così via, con la possibilità di caricare il modello più volte usando parametri diversi per personalizzare ciascun ambiente.

Per altre informazioni sull'uso dei modelli, vedere Avvio rapido: Creare una macchina virtuale Ubuntu Linux con un modello di ARM.

Interfaccia della riga di comando di Azure

Un'altra opzione per l'interazione di scripting e riga di comando in Azure è l'interfaccia della riga di comando di Azure.

L'interfaccia della riga di comando di Azure è lo strumento da riga di comando multipiattaforma di Microsoft per la gestione delle risorse di Azure, ad esempio macchine virtuali e dischi, dalla riga di comando. È disponibile per Linux, macOS, Windows oppure in un browser con Cloud Shell.

Ad esempio, dall'interfaccia della riga di comando è possibile creare una macchina virtuale di Azure con il comando az vm create.

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

È possibile usare l'interfaccia della riga di comando di Azure con altri linguaggi di scripting, ad esempio Ruby e Python.

Altre informazioni sulla creazione e la gestione di macchine virtuali sono disponibili nel modulo Gestire le macchine virtuali con l'interfaccia della riga di comando di Azure.

Per altre informazioni sull'uso dell'interfaccia della riga di comando di Azure per creare macchine virtuali, vedere Avvio rapido: Creare una macchina virtuale Linux con l'interfaccia della riga di comando.

Azure PowerShell

Azure PowerShell è ideale per attività interattive occasionali e/o l'automazione di attività ripetute.

Nota

PowerShell è una shell multipiattaforma che offre servizi come la finestra della shell e l'analisi dei comandi. Azure PowerShell è un pacchetto aggiuntivo facoltativo che aggiunge i comandi specifici di Azure (detti cmdlet). È possibile ottenere altre informazioni sull'installazione e l'uso di Azure PowerShell in un modulo di formazione separato.

È ad esempio possibile usare il cmdlet New-AzVM per creare una nuova macchina virtuale di Azure basata su Debian.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Come illustrato di seguito, vengono forniti vari parametri per gestire tutte le varie impostazioni di configurazione della macchina virtuale disponibili. La maggior parte dei parametri ha valori accettabili, quindi è necessario specificare solo quelli richiesti. Altre informazioni sulla creazione e la gestione di macchine virtuali con Azure PowerShell sono disponibili nel modulo Automatizzare le attività di Azure usando gli script con PowerShell.

Per altre informazioni sull'uso di PowerShell per creare macchine virtuali, vedere Avvio rapido: Creare una macchina virtuale Linux con PowerShell.

Terraform

Azure dispone anche di un provider Terraform, che consente di usare facilmente Terraform per creare e gestire le macchine virtuali. Terraform consente di definire, visualizzare in anteprima e distribuire l'infrastruttura cloud. Con Terraform è possibile creare file di configurazione usando la sintassi HCL. La sintassi HCL consente di specificare il provider di servizi cloud, ad esempio Azure, e gli elementi che costituiscono l'infrastruttura cloud. Dopo aver creato i file di configurazione, è necessario creare un piano di esecuzione che consenta di visualizzare in anteprima le modifiche apportate all'infrastruttura prima che vengano distribuite. Dopo aver verificato le modifiche, è possibile applicare il piano di esecuzione per distribuire l'infrastruttura.

Per altre informazioni, vedere Provider Azure Terraform e Avvio rapido: Usare Terraform per creare una macchina virtuale.

Approccio a livello di codice (API)

In generale, Azure PowerShell e l'interfaccia della riga di comando di Azure sono ottime opzioni se si hanno script semplici da eseguire e si preferisce usare strumenti da riga di comando. In scenari più complessi in cui la creazione e la gestione delle macchine virtuali fanno parte di un'applicazione più ampia con una logica complessa è necessario adottare un altro approccio.

È possibile interagire con tutti i tipi di risorse in Azure a livello di codice.

API REST di Azure

L'API REST di Azure offre agli sviluppatori operazioni categorizzate per risorsa, oltre alla possibilità di creare e gestire le macchine virtuali. Le operazioni sono esposte come URI con i metodi HTTP corrispondenti (GET, PUT, POST, DELETE e PATCH) e una risposta corrispondente.

Le API di calcolo di Azure forniscono accesso a livello di codice alle macchine virtuali e alle relative risorse di supporto.

Per altre informazioni, vedere le informazioni di riferimento sull'API REST di Macchine virtuali.

SDK per client Azure

Anche se l'API REST non dipende da una piattaforma o da un linguaggio, spesso gli sviluppatori cercheranno un livello superiore di astrazione. L'SDK per client Azure incapsula l'API REST di Azure, facilitando l'interazione degli sviluppatori con Azure.

Gli SDK per client Azure sono disponibili per vari linguaggi e framework, inclusi quelli con linguaggi basati su .NET come C#, Java, Node.js, PHP, Python, Ruby e Go.

Ecco un frammento di codice C# di esempio per creare una macchina virtuale di Azure usando il pacchetto NuGet Microsoft.Azure.Management.Fluent.

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Di seguito è riportato lo stesso frammento in Java con Azure Java SDK.

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Estensioni di VM di Azure

Si supponga di voler configurare e installare altro software nella macchina virtuale dopo la distribuzione iniziale. Si vuole che l'attività usi una configurazione specifica, monitorata ed eseguita automaticamente.

Le estensioni macchina virtuale di Azure sono piccole applicazioni che consentono di configurare e automatizzare le attività nelle macchine virtuali di Azure dopo la distribuzione iniziale.

Per altre informazioni, vedere Estensioni e funzionalità delle macchine virtuali di Azure.

Servizi di Automazione di Azure

Alcune delle sfide operative più rilevanti nella gestione dell'infrastruttura remota consistono nel risparmiare tempo, ridurre gli errori e aumentare l'efficienza. Se si dispone di numerosi servizi di infrastruttura, è consigliabile usare servizi di livello superiore in Azure per lavorare con più facilità.

Automazione di Azure permette di integrare i servizi che consentono di automatizzare con facilità le attività di gestione più frequenti, complesse e soggette a errori. Questi servizi includono automazione dei processi, gestione della configurazione e gestione degli aggiornamenti.

  • Automazione dei processi. Si supponga di avere una macchina virtuale monitorata per un evento di errore specifico. Si vuole intervenire e risolvere il problema non appena viene segnalato. L'automazione dei processi consente di configurare attività watcher in grado di rispondere agli eventi che possono verificarsi nel data center.

  • Gestione della configurazione. Potrebbe essere necessario tener traccia degli aggiornamenti software disponibili per il sistema operativo eseguito nella macchina virtuale, con aggiornamenti specifici da includere o escludere. La gestione della configurazione consente di tenere traccia di questi aggiornamenti e di intervenire in base alle esigenze. È possibile usare System Center Configuration Manager per gestire PC, server e dispositivi mobili aziendali. Il supporto può essere esteso alle macchine virtuali di Azure grazie a Configuration Manager.

  • Gestione aggiornamenti. Usare questo servizio per gestire gli aggiornamenti e le patch per le macchine virtuali. Con questo servizio, si può valutare in modo rapido lo stato degli aggiornamenti disponibili, pianificare l'installazione ed esaminare i risultati della distribuzione per verificare che gli aggiornamenti siano stati applicati correttamente. La gestione degli aggiornamenti include servizi che consentono di gestire i processi e la configurazione. È possibile abilitare la gestione degli aggiornamenti per una macchina virtuale direttamente nell'account di Automazione di Azure. È anche possibile abilitare la gestione degli aggiornamenti per una singola macchina virtuale dal relativo riquadro nel portale.

Arresto automatico

L'arresto automatico è una funzionalità di Azure che consente di arrestare automaticamente le macchine virtuali in base a una pianificazione. Usare l'arresto automatico per risparmiare sui costi assicurandosi che le macchine virtuali non siano in esecuzione quando non è necessario. È possibile impostare la pianificazione per arrestare automaticamente l'esecuzione giornaliera o settimanale ed è anche possibile specificare il fuso orario per la pianificazione.

Per passare alla funzionalità di arresto automatico in una macchina virtuale nel portale di Azure, passare al pannello della macchina virtuale nel portale, fare clic su "Arresto automatico" nella sezione "Operazioni" e quindi configurare le impostazioni di arresto automatico in base alle preferenze.

Screenshot showing Auto-shutdown option for a VM.

Per altre informazioni, vedere Arresto automatico.

Come si può notare, Azure offre vari strumenti per creare e amministrare le risorse, quindi è possibile integrare le operazioni di gestione nel processo più appropriato. Ora verranno esaminati altri servizi di Azure per assicurare il funzionamento ottimale delle risorse di infrastruttura.