Modulo Azure PowerShell Az: la rivoluzione della riga di comando per interagire con Microsoft Azure

A partire dallo scorso 18 dicembre 2018 è stato reso disponibile in nuovo modulo PowerShell per la gestione di Microsoft Azure.

Questo modulo sostituirà il vecchio AzureRM che tanti di noi usano ormai da diversi anni e si chiamerà Az.

Probabilmente Az sarà stato utilizzato da qualcuno nei comandi Azure CLI (Azure Command-Line Interface), l’interfaccia a riga di comando multipiattaforma che può essere installata su Windows, Linux o macOS o che può essere utilizzata tramite browser grazie ad Azure Cloud Shell.

Da ora in poi Az sarà anche un modulo PowerShell basato sulle librerie .NET e sarà supportato in PowerShell 5.x e PowerShell Core 6.x. Questo significa che sarà disponibile per tutte le piattaforme (Linux, macOS e Windows).

Funzionalità

  • Az sostituisce AzureRM e AzureRM.Netcore
  • Funziona con PowerShell 5.1 e PowerShell Core 6.1
  • È sempre aggiornato con gli ultimi strumenti per gestire i servizi Azure
  • Può essere utilizzato in Azure Cloud Shell
  • Abbrevia e normalizza i nomi delle cmdlet
  • Permette la compatibilità degli script già realizzati per AzureRM grazie all’utilizzo degli Alias
  • È open source

Piattaforme supportate

  • PowerShell 5.1 – Windows 7/8/10 con .Net Framework 4.7.2 installato
  • PowerShell Core 6.0 – Windows, Mac OS, Linux
  • PowerShell Core 6.1 – Windows, Mac OS, Linux

Installazione del modulo Azure PowerShell Az

Prima di procedere all’installazione del nuovo modulo Azure PowerShell Az è consigliato disinstallare il vecchio modulo Azure PowerShell AzureRM (attualmente giunto alla versione 6.13.1). Se lo avete installato tramite PowerShellGet allora potete semplicemente disinstallarlo utilizzando il comando Uninstall-Module AzureRM oppure Uninstall-AzureRM, altrimenti se lo avete installato tramite file MSI potete disinstallarlo tramite Start > Settings > Apps in Windows 10 e Start > Control Panel > Programs > Uninstall a program in Windows 7/8

Figura 1: Disinstallazione del vecchio modulo Azure PowerShell AzureRM

Procedete quindi all’installazione del nuovo modulo utilizzando il comando Install-Module -Name Az -AllowClobber. La versione attualmente disponibile è la 1.1.0

Figura 2: Installazione del pacchetto Az con tutti i moduli di Azure PowerShell Az

Figura 3: Verifica della versione installata del modulo Azure PowerShell Az

NOTA: Vi ho consigliato di disinstallare il vecchio modulo AzureRM perché, nonostante possano essere installati contemporaneamente sulla stessa macchina, avrete sicuramente difficoltà a gestire gli Alias, cioè i comandi inseriti nel modulo Az per favorire la migrazione da AzureRM al nuovo modulo di gestione.

Per maggiori informazioni sull’installazione del nuovo modulo Azure PowerShell Az vi invito a leggere la pagina Install the Azure PowerShell module Az

Migrare da AzureRM ad Azure PowerShell Az

Il modulo Azure PowerShell Az ha le stesse funzionalità del modulo AzureRM ma utilizza dei comandi più brevi e con nomi diversi.

E allora come facciamo con gli script che abbiamo realizzato con il modulo AzureRM? La risposta è che non funzioneranno e che abbiamo bisogno di migrarli. Microsoft vi mette a disposizione anche una Migration Guide for Az 1.0.0 per aiutarvi nella migrazione e nella conversione degli script. Vi consiglio assolutamente di dare un’occhiata!

IMPORTANTE: Assicuratevi che gli script che avete realizzato funzionino perfettamente con l’ultima versione del modulo AzureRM (6.13.1).

Se avete disinstallato tutte le versioni del modulo AzureRM ed avete installato il modulo Az, potete abilitare il Compatibility Mode con il comando Enable-AzureRmAlias. Il Compatibility Mode vi permette di continuare ad utilizzare i nomi delle vecchie cmdllet del modulo AzureRM nel modulo Az.

Nel caso in cui ci siano ancora delle versioni del modulo AzureRM installate nella vostra macchina riceverete un messaggio di avviso come quello mostrato nella figura sotto:

Figura 4: Messaggio di avviso dovuto alla presenza del modulo Azure PowerShell AzureRM nella macchina

ATTENZIONE: Nel caso in cui manteniate installati sulla stessa macchina entrambi i moduli e abilitiate gli Alias, qualsiasi cmdlet AzureRM utilizzerà il vecchio modulo AzureRM e non richiamerà nessun cmdlet del nuovo modulo Az. Disinstallando invece AzureRm non riceverete nessun avviso da Enable-AzureRmAlias, come mostrato nella figura sotto:

Figura 5: In assenza di moduli AzureRM installati nella macchina è possibile abilitare gli Alias per il modulo Azure PowerShell Az

Il Compatibility Mode con il comando Enable-AzureRmAlias può essere abilitato anche per Scope diversi (CurrentUser, Process, LocalMachine). Microsoft consiglia di abilitarlo per lo scope CurrentUser (utilizzate il comando Enable-AzureRmAlias -Scope CurrentUser). Abilitandolo per lo Scope non sarete costretti ad abilitarlo in ogni singola sessione di PowerShell. Infatti, come potete vedere dalla figura sotto, sono stato costretto ad attivarlo nella sessione PowerShell, perché le vecchie cmdlet di AzureRM non venivano riconosciute:

Figura 6: Se non viene dichiarato lo Scope la cmdlet Enable-AzureRmAlias è valida solo nella singola sessione di PowerShell e deve essere digitata ogni volta che vogliamo usare il Compatibility Mode

Ho lanciato quindi il comando Enable-AzureRmAlias -Scope CurrentUser e le volte successive che ho usato le vecchie cmdlet di AzureRm non ho ricevuto più errori, come si può vedere dalla figura sotto:

Figura 7: Abilitazione degli Alias per lo Scope CurrentUser

Figura 8: Abilitando Enable-AzureRmAlias per l’utente corrente (utilizzando -Scope CurrentUser) non riceveremo più messaggi di errore

Che succederà al vecchio modulo Azure PowerShell AzureRM?

Il vecchio modulo non riceverà più nessuna nuova cmdlet o funzionalità e verrà supportato fino a dicembre 2020. Questo significa che se vorrete utilizzare e gestire tramite PowerShell le ultime funzionalità e servizi di Azure dovrete necessariamente passare al nuovo modulo Azure PowerShell Az.

Conclusioni

Il nuovo modulo Azure PowerShell Az assicura che sia gli utenti PowerShell che gli utenti PowerShell Core ricevano sempre gli ultimi aggiornamenti per gestire Azure e che li ricevano su qualsiasi piattaforma. Utilizzare lo stesso nome per i comandi su tutte le piattaforme permette anche una notevole semplificazione.

Maggiori dettagli sono disponibili alla pagina ufficiale GitHub https://github.com/Azure/azure-powershell/blob/master/documentation/announcing-az-module.md