Azure CLI: comandi testuali per avere libertà e controllo

L'Azure Command-Line Interface (CLI) è uno strumento che, tramite l'uso di comandi testuali, permette agli utenti di creare, configurare e monitorare le risorse cloud in modo efficiente e automatizzato, eliminando la necessità di interfacce grafiche e favorendo l'integrazione con script e processi di DevOps. Compatibile con diversi sistemi operativi, Azure CLI è dedicato a sviluppatori, amministratori di sistema e professionisti IT che cercano di ottimizzare il loro lavoro nel cloud e offre, oltre a una grande flessibilità, anche una curva di apprendimento accessibile ai meno esperti. In questo articolo andremo a vedere più da vicino come funziona e quali sono i comandi essenziali, prendendoci anche un momento per parlare di Developer CLI e delle differenze tra Azure CLI e PowerShell.

Cosa troverai in questo articolo

  • Cos’è Azure CLI
  • Azure CLI: come funziona?
  • Azure CLI: come installarlo?
  • Azure CLI Commands: esempi di comandi essenziali
  • Azure Developer CLI: l’interfaccia specializzata per sviluppatori
  • Azure CLI vs. PowerShell: quali sono le differenze?
Azure CLI: comandi testuali per avere libertà e controllo

Cos’è Azure CLI

Se ci si è avvicinati da poco a Microsoft Azure, molto probabilmente il proprio percorso è cominciato lavorando all’interno del Portale di Azure, magari creando risorse come macchine virtuali e account di archiviazione utilizzando i wizard di distribuzione.

Tuttavia, questo processo è tedioso e non è scalabile quando è necessario creare molte risorse. Per portare lo sviluppo delle proprie soluzioni software al livello successivo è necessario avere un grado di libertà e controllo molto più elevato, che spesso i software basati sull’utilizzo mediante interfaccia grafica non offrono.

Azure CLI (abbreviazione di Command-Line Interface) è un solido strumento a riga di comando fornito da Microsoft per gestire le risorse di Azure. Offre un modo rapido, flessibile e scriptabile per interagire con i servizi e le risorse di Azure, consentendo agli utenti di automatizzare efficientemente le attività e gestire l'infrastruttura nel cloud di Azure.

Gli utenti possono utilizzare questa piattaforma per scriptare una varietà di operazioni nel portale Azure, come la creazione o l'eliminazione di risorse Azure, incluse le macchine virtuali o il backup dei database SQL.

Ma come funziona nello specifico? Diamogli uno sguardo più da vicino.

Azure CLI: come funziona?

Prima di cominciare la nostra panoramica, prendiamoci un attimo per capire meglio che cos’è una CLI e come funziona.

Una CLI, o Command-Line Interface (Interfaccia a Riga di Comando), è un'interfaccia utente che consente agli utenti di interagire con un computer o un sistema software digitando comandi testuali. A differenza delle interfacce grafiche (GUI), che utilizzano elementi visivi come finestre, icone e menu, una CLI richiede che l'utente inserisca comandi specifici tramite una tastiera.

Nella CLI, l'interazione avviene quindi solo in modo testuale, con i comandi inseriti in sequenza uno dopo l'altro. Questo tipo di interfaccia consente agli utenti più tecnici di scrivere facilmente script, ovvero sequenze di comandi, per automatizzare operazioni ripetitive.

Un’interfaccia a riga di comando offre quindi a chi la sa utilizzare un alto livello di controllo e libertà e gli permette di eseguire operazioni avanzate e complesse che spesso non sono possibili con le GUI e può risultare molto più veloce ed efficiente per eseguire operazioni complesse.

Azure CLI fa esattamente questo per i servizi di Azure e dà libertà e controllo agli sviluppatori per elaborare soluzioni più complesse a livello tecnico per tutti i servizi della piattaforma cloud di Microsoft, tra cui macchine virtuali, account di archiviazione, database, reti virtuali e altro ancora. Gli utenti possono creare, gestire e monitorare le risorse direttamente dalla riga di comando, senza la necessità di interfacciarsi con una GUI.

Per poterla utilizzare, dopo averla installata la si esegue per mezzo di una shell (un programma che funge da intermediario tra l'utente e il sistema operativo di un computer), come CMD su Windows o Bash su Linux o macOS, e poi si digita un comando al prompt della shell.

L'Azure CLI può essere installata localmente su sistemi Linux, Mac o Windows. Può anche essere accessibile tramite browser utilizzando l'Azure Cloud Shell o all'interno di un container Docker.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

Abbiamo creato il team Infra&Security, verticale sul cloud Azure, per rispondere alle esigenze dei clienti che ci coinvolgono nelle decisioni tecniche e strategiche. Oltre a configurare e gestire il loro tenant, ci occupiamo di:

  • ottimizzare i costi delle risorse
  • implementare procedure di scaling e high availability
  • creare deployment applicativi tramite le pipeline di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Azure CLI: come installarlo?

Per poter utilizzare Azure CLI sul proprio sistema basterà attraversare un semplice processo d’installazione seguito da una rapida configurazione per connettersi al proprio account Azure. Qui approfondiremo i passaggi di installazione per diversi sistemi operativi e i passaggi di configurazione iniziale per fare in modo di essere pronti a gestire le risorse di Microsoft Azure utilizzando il CLI in pochissimo tempo.

Windows

  • Accedere alla pagina ufficiale di download di Azure CLI (accessibile qui).

  • Scaricare il file MSI disponibile per Windows.
  • Eseguire il file MSI e seguire la procedura guidata di installazione. L'installer è progettato per guidare gli utenti attraverso tutti i passaggi necessari, inclusa la scelta della directory di installazione.
  • Una volta installato, basterà aprire il Prompt dei comandi o PowerShell e digitare az per iniziare a utilizzare Azure CLI.

macOS

  • Il metodo preferito per installare l'Azure CLI su macOS è utilizzare Homebrew, un gestore di pacchetti per macOS.
  • Se Homebrew non è installato sul tuo sistema, puoi installarlo incollando il seguente comando in un Terminale macOS:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/
install/HEAD/install.sh)"
  • Dopo aver installato Homebrew, basterà installare Azure CLI utilizzando il seguente comando nel terminale:
brew update && brew install azure-cli

Linux

  • Il processo di installazione su Linux dipende dalla distribuzione specifica. Azure CLI può essere installato utilizzando gestori di pacchetti come apt per distribuzioni basate su Debian/Ubuntu, yum per distribuzioni basate su Red Hat, o zypper per distribuzioni basate su SUSE.
  • Per le distribuzioni basate su Debian/Ubuntu, puoi installare l'Azure CLI eseguendo i seguenti comandi:
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
  • Per distro basate su Red Hat si può usare:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/
yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.
microsoft.com/ keys/microsoft.asc" > /etc/yum.repos.d/
azure-cli.repo'
sudo dnf install azure-cli
  • Ogni comando scarica ed esegue uno script che aggiunge il repository del software Azure CLI e lo installa sul dispositivo.

Azure CLI: configurazione iniziale

Dopo aver installato Azure CLI, il passo successivo è configurarlo accedendo al proprio account Azure: 

  • Aprire una finestra dell'interfaccia a riga di comando che può essere il Prompt dei comandi o PowerShell su Windows, il Terminale su macOS, o qualsiasi emulatore di terminale su Linux.
  • Digitare il seguente comando e premere Invio:
az login
  • Questo comando aprirà il browser web predefinito del sistema e chiederà di accedere con le credenziali del proprio account Azure. Se non si riesce a utilizzare un browser web è possibile accedere utilizzando un codice dispositivo seguendo le istruzioni fornite dal CLI.
  • Una volta effettuato l'accesso, il CLI mostrerà informazioni sul proprio abbonamento. Se si hanno più abbonamenti Azure sarà necessario specificare quale si desidera utilizzare. È possibile elencare tutti gli abbonamenti disponibili con il comando:
az account list --output table
  • Per settare un account di default da utilizzare nelle sessioni di CLI si può usare questo comando:
az account set --subscription "<Subscription Name or ID>"

Azure CLI Commands: esempi di comandi essenziali

Azure CLI offre una quantità incredibile di comandi che permettono di interagire con gli altrettanto numerosi servizi di Azure. Data la mole, non sarà possibile coprirli nella sua totalità; quindi, ci limiteremo a introdurre solo alcuni comandi fondamentali, essenziali per chiunque inizi a utilizzare Azure CLI.

Questi comandi coprono il lavoro con i gruppi di risorse e l'ottenimento di informazioni su vari servizi Azure e permetteranno a chi desidera incominciare a usarlo di avere un’idea un po’ più chiara di come farlo.

Help

Prima di cominciare però, diamo uno sguardo a quello che è senza dubbio uno dei comandi più utili di Azure CLI, ovvero “help”.

Il comando help è uno strumento molto utile per ottenere informazioni dettagliate sui comandi disponibili, sui loro argomenti e sulle opzioni e la sua funzione principale è fornire assistenza e documentazione direttamente nella riga di comando, facilitando così l'uso della CLI.

Quando si utilizza il comando “az help”, si ottiene una panoramica generale di Azure CLI, inclusi i comandi principali e le estensioni disponibili, estremamente utile per orientarsi e capire quali comandi sono disponibili per l'uso.

È possibile anche ottenere informazioni dettagliate su un comando specifico aggiungendo help dopo il comando di interesse. Questo fornisce dettagli sugli argomenti del comando, sulle opzioni disponibili e spesso include esempi di utilizzo. Qui sotto lasciamo un esempio di questo possibile utilizzo:

az group help

Per ottenere dettagli su un'azione specifica di un comando, si può estendere ulteriormente l'uso di help. Questo è utile per esplorare tutte le possibili azioni e parametri di un determinato comando. Riprendiamo l’esempio sopra e vediamo come cambia la sintassi:

az group create help

È anche possibile utilizzare la sintassi “—help” con qualsiasi comando per ottenere informazioni dettagliate. Questo funziona in modo identico all'aggiunta di help alla fine del comando. Qui sotto un altro esempio:

az vm create --help

Gestione dei Resource Groups

Resource groups sono contenitori che ospitano risorse correlate per una soluzione Azure. Ecco come creare e gestire resource groups rapidamente mediante l’utilizzo di Azure CLI:

  • Creare un Resource Group
az group create --name <Insert Name> --location <Insert Regione>

Questo commando creerà un nuovo Resource Group. Ricordatevi di inserire nel comando un nome per la risorsa e la sua location in base alla regione Azure dell’account.

  • List Resource Groups: Per vedere tutti i resource group della propria sottoscrizione (completi di location e altre proprietà) in un comodo formato tabella basterà scrivere
az group list --output table
  • Delete a Resource Group: Questo commando cancellerà il resource group scelto e tutte le risorse contenute al suo interno.
az group delete --name <InsertResourceName> --yes --no-wait

Il flag --yes conferma l'operazione, e --no-wait indica alla CLI di non attendere il completamento dell'operazione prima di riportare al prompt.

Visione e gestione dei servizi e delle risorse Azure

Come abbiamo già accennato a inizio sezione, Azure CLI può interagire con praticamente tutti i servizi di Azure. Facciamo un paio di esempi per capire meglio come:

  • Fare un elenco di tutte le Virtual Machine (VMs) in una sottoscrizione:
az vm list --output table

Questo comando elencherà tutte le vm nella sottoscrizione di default selezionata, mostrandone nomi, resource group associati e location.

  • Fare un elenco di tutti gli account di storage:
az storage account list --output table

In maniera simile al comando precedente, mostrerà una tabella di tutti gli account di storage mostrandone nomi, location e resource group associati.

Working with Virtual Machines (VMs)

Azure Virtual Machines (VMs) are one of the most commonly used resources. They allow you to deploy and manage virtual servers in the cloud. Here’s how you can manage VMs using Azure CLI:

  • Creare una Virtual Machine: Creare una VM comprende lo specificare dettagli come il resource group associato, il nome della VM, l’immagine e le credenziali amministrative. L’esempio qui sotto è per dare un’idea di come creare una VM Linux
az vm create \
 --resource-group <InsertResourceName> \
 --name MyVM \
 --image UbuntuLTS \
 --admin-username <InsertUserName> \
 --generate-ssh-keys
  • Far partire/ripartire una VM:
az vm start --resource-group <InsertResourceName> --name MyVM
  • Fermare una VM: interrompere il lavoro di una VM può aiutare a risparmiare risorse e denaro quando non è in uso
az vm stop --resource-group <InsertResourceName> --name MyVM

Deployment e gestione delle Web App

Azure CLI può essere utilizzato anche per la gestione delle App create e distribuite tramite il servizio Azure App Service. Vediamo anche qui qualche esempio di comandi utilizzabili:

  • Creare un App Service Plan: gli App Service Plan specificano la location, la dimensione e le caratteristiche della web server farm che ospita la propria app. Per crearne uno basterà usare il seguente comando
az appservice plan create --name <InsertPlanName> --resource-group <InsertResourceName> --sku F1 --location <InsertRegion>

(Da specificare che questo comando crea nello specifico un Service Plan di tier gratuito).

  • Creare una web app: Una volta creato il nostro App Service Plan, possiamo procedere alla creazione della web app:
az webapp create --resource-group <InsertResourceName> --plan <InsertPlanName> --name <InsertAppName>

Gestire gli account Azure Storage

Azure CLI può anche essere utilizzato per gestire e caricare file sui propri account Azure Storage. Anche in questo caso facciamo un paio di esempi più concreti per vedere come funziona in questo contesto:

  • Creare uno Storage Account:
az storage account create \
 --name <InsertStorageAccountName> \
 --resource-group <InsertResourceName> \
 --location <InsertRegion> \
 --sku Standard_LRS

Con questo specifico comando andremo a creare un account di storage che utilizza come opzione di redundancy lo "Standard_LRS" (Locally-redundant storage) nella regione desiderata.

  • Caricare un file in un contenitore Blob:
az storage blob upload \
 --account-name <InsertStorageAccountName> \
 --container-name <InsertContainerName> \
 --name <InsertFileName> \
 --file <InsertPathToFile>

Prima di utilizzare il comando, assicuratevi che sia presente un contenitore nel proprio account di storage.

Azure Developer CLI: l’interfaccia specializzata per gli sviluppatori

L'Azure Developer CLI è uno strumento principalmente orientato agli sviluppatori. Questo strumento è progettato per creare e distribuire applicazioni e infrastrutture Azure utilizzando solo pochi comandi. È come Azure CLI uno strumento open-source e ha due obiettivi principali: ridurre i tempi di sviluppo e aiutare i developer a comprendere i concetti fondamentali dello sviluppo su Azure.

Entrambi permettono di distribuire servizi e infrastrutture su Azure ma Azure CLI è uno strumento più generale che consente di gestire e controllare le risorse Azure direttamente dal terminale, con molta libertà di modificare, cambiare e avere un controllo più dettagliato su ciascun comando eseguito.

L'Azure Developer CLI è invece uno strumento più orientato agli sviluppatori, focalizzato sull'accelerare le distribuzioni avendo molti aspetti già connessi per l’utente all'interno di un'unica applicazione, dando agli sviluppatori la possibilità di avere meno preoccupazioni riguardo al processo di distribuzione.

Un caso d'uso tipico dell'Azure Developer CLI è se si ha per le mani un'applicazione completa composta da più servizi complessi che si connettono tra loro. In questo particolare caso sarebbe un compito molto arduo configurarli manualmente nel portale o attraverso molti comandi tramite Azure CLI.

La manciata di comandi developer-friendly utilizzabili all’interno di questa interfaccia permette di occuparsi di tutti i passaggi chiave nel workflow di uno sviluppatore senza doversi perdere nella configurazione manuale di ogni singola connessione e servizio e può tornare particolarmente utile se si sta lavorando in un team e si desidera avere la certezza che tutti stiano utilizzando la stessa infrastruttura e codice dell'app.

Panoramica di Azure Developer CLI

Azure CLI vs. Azure PowerShell: quali sono le differenze?

Azure CLI e PowerShell sono due degli strumenti principali per la gestione e l'automazione dei servizi Azure, ma seppur sembrino all’apparenza lo stesso strumento non potrebbero essere più diversi. Molti utenti alle prime armi infatti potrebbero confonderli perché entrambi sono basati su riga di comando, ma la differenza tra Azure CLI e PowerShell è l’equivalente della differenza tra un programma e un sistema operativo. Vediamola meglio.

Azure CLI come abbiamo già visto è uno strumento progettato specificamente per lavorare con i servizi Azure. È focalizzato sull'interazione con la piattaforma Azure attraverso una serie di comandi dalla sintassi intuitiva e uniforme (facilitando l'apprendimento e l'uso del tool), indipendentemente dal sistema operativo in uso e per essere utilizzato ha bisogno di essere installato su una shell da cui poi lo si eseguirà.

PowerShell è invece una shell a riga di comando e un linguaggio di scripting creato da Microsoft, inizialmente per gestire sistemi Windows ma poi esteso anche ad altri ambienti, diventando compatibile con Windows, macOS e Linux dopo l’introduzione di PowerShell Core, ampliando notevolmente la sua portata.

Quest’ultimo, a differenza di CLI, è una vera e propria console di comando (come il bash di Linux o il vecchio CMD di Windows) e offre una sintassi basata su comandi e oggetti, il che significa che i risultati delle operazioni vengono trattati come oggetti e non come semplice testo ed è spesso usato per la gestione di ambienti Windows e per l'automazione di attività più generali.

Powershell integra cmdlet specifici per Azure, che offrono una profondità di controllo e personalizzazione maggiore rispetto ai comandi di base di Azure CLI (seppur al costo di una maggiore complessità e difficoltà di scrittura e lettura) ma le sue funzionalità non sono limitate al solo Azure, rendendolo particolarmente adatto per scenari complessi dove è necessario integrare Azure con altre operazioni di sistema e script complessi.

Nella pratica effettiva, molti utenti utilizzano una combinazione di Azure CLI e PowerShell in base alle loro esigenze e preferenze specifiche e questi strumenti sono complementari piuttosto che esclusivi l'uno dell'altro e la scelta dipende spesso dal compito da svolgere. Quando si sceglie quale strumento da riga di comando sia più adatto, si dovrebbero quindi considerare la propria esperienza e il tipo di ambiente in cui si lavora per poter sfruttare i due al massimo del loro potenziale.

Conclusioni

La possibilità di avere maggiore libertà e controllo offerta dalle interfacce a riga di comando è il motivo per cui, dopo ancora tantissimi anni, molti developer esperti le preferiscono rispetto a soluzioni dotate di interfaccia grafica che, seppure più user-friendly e facili da utilizzare, potrebbero essere soggette a scomode limitazioni.

Azure CLI con la sua offerta ha sostanzialmente reso molto più rapido, comprensibile e sintetico il lavoro degli sviluppatori che prediligono l’utilizzo di questo tipo di interfacce più minimali, riuscendo a garantirgli lo stesso grado di controllo e libertà d’azione sul loro lavoro con maggiore facilità e minore sforzo.

Con la sua combinazione di versatilità e linguaggio intuitivo e senza fronzoli, nonché la possibilità di utilizzarlo su più piattaforme (e addirittura su browser) senza problemi di compatibilità con shell differenti, l’interfaccia a riga di comando di Azure è diventata nel corso del tempo una delle soluzioni più apprezzate dagli sviluppatori che lavorano sulla piattaforma di cloud computing di Microsoft. Perché non metterla quindi alla prova e scoprirne da sé il potenziale?

FAQ su Azure CLI

Che cos'è Azure CLI?

Azure CLI è uno strumento da riga di comando fornito da Microsoft per gestire le risorse Azure. Consente di automatizzare e controllare l'infrastruttura cloud utilizzando comandi testuali.

Cos'è Azure Developer CLI?

Azure Developer CLI è uno strumento rivolto agli sviluppatori, semplificando lo sviluppo e il deployment di applicazioni Azure con comandi semplificati per la gestione di servizi complessi.

Come funziona Azure CLI?

Azure CLI funziona tramite comandi testuali in un terminale, permettendo la creazione, configurazione e monitoraggio delle risorse Azure. Può essere installato su diversi sistemi operativi o utilizzato tramite Azure Cloud Shell.

Come installare Azure CLI su Windows?

Per installare Azure CLI su Windows, scarica l'MSI installer dalla pagina di download di Azure CLI, eseguilo e segui la procedura guidata. Usa il Prompt dei comandi o PowerShell per iniziare a usarlo digitando 'az'.

Posso usare Azure CLI su macOS?

Sì, Azure CLI può essere installato su macOS utilizzando Homebrew. Installa Homebrew, quindi esegui il comando 'brew update && brew install azure-cli' nel Terminale.

Quali sono alcuni comandi essenziali di Azure CLI?

Alcuni comandi essenziali di Azure CLI includono 'az group create' per creare un gruppo di risorse, 'az vm list' per elencare le macchine virtuali e 'az storage account list' per elencare gli account di archiviazione.

Qual è la differenza tra Azure CLI e PowerShell?

Azure CLI è progettato specificamente per gestire i servizi Azure con una struttura di comandi coerente, mentre PowerShell è una shell e un linguaggio di scripting di uso generale, integrato negli ambienti Windows.

Scopri perché scegliere il team

Infra & Sec

Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).