Configurare Terraform in Azure Cloud Shell con Azure PowerShell
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.
Questo articolo illustra come iniziare a usare Terraform in Azure con Cloud Shell e PowerShell.
In questo articolo vengono illustrate le operazioni seguenti:
- Configurare Cloud Shell
- Informazioni sugli scenari comuni di autenticazione di Terraform e Azure
- Eseguire l'autenticazione tramite un account Microsoft da Cloud Shell (usando Bash o PowerShell)
- Eseguire l'autenticazione tramite un account Microsoft da Windows (usando Bash o PowerShell)
- Creare un'entità servizio usando l'interfaccia della riga di comando di Azure
- Creare un'entità servizio usando PowerShell
- Specificare le credenziali dell'entità servizio nelle variabili di ambiente
- Specificare le credenziali dell'entità servizio in un blocco di provider Terraform
1. Configurare l'ambiente
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
2. Aprire Cloud Shell
Se è già aperta una sessione di Cloud Shell, è possibile passare alla sezione successiva.
Passare al portale di Azure
Se necessario, accedere alla sottoscrizione di Azure e modificare la directory di Azure.
Aprire Cloud Shell.
Se Cloud Shell non è stato usato in precedenza, configurare le impostazioni dell'ambiente e di archiviazione.
Selezionare l'ambiente della riga di comando.
3. Installare la versione più recente di Terraform in Azure Cloud Shell
Cloud Shell viene aggiornato automaticamente alla versione più recente di Terraform. Tuttavia, gli aggiornamenti arrivano entro un paio di settimane di rilascio. Questo articolo illustra come scaricare e installare la versione corrente di Terraform.
Determinare la versione di Terraform usata in Cloud Shell.
terraform version
Se la versione di Terraform installata in Cloud Shell non è la versione più recente, viene visualizzato un messaggio che indica che la versione di Terraform non è aggiornata.
Se si lavora correttamente con la versione indicata, passare alla sezione successiva. In caso contrario, continuare con i passaggi seguenti.
Passare alla pagina di download di Terraform.
Scorrere verso il basso fino ai collegamenti di download di Linux .
Spostare il mouse sul collegamento a 64 bit . Questo collegamento riguarda la versione più recente di Linux AMD a 64 bit, appropriata per Cloud Shell.
Copia l'URL.
Eseguire
curl
, sostituendo il segnaposto con l'URL del passaggio precedente.curl -O <terraform_download_url>
Decomprimere il file .
unzip <zip_file_downloaded_in_previous_step>
Se la directory non esiste, creare una directory denominata
bin
.mkdir bin
Spostare il
terraform
file nellabin
directory .mv terraform bin/
Chiudere e riavviare Cloud Shell.
Verificare che la versione scaricata di Terraform sia prima nel percorso.
terraform version
4. Verificare la sottoscrizione di Azure predefinita
Quando si accede al portale di Azure con un account Microsoft, viene usata la sottoscrizione di Azure predefinita per tale account.
Terraform esegue automaticamente l'autenticazione usando le informazioni della sottoscrizione di Azure predefinita.
Eseguire az account show per verificare l'account Microsoft corrente e la sottoscrizione di Azure.
az account show
Tutte le modifiche apportate tramite Terraform si trovano nella sottoscrizione di Azure visualizzata. Se si vuole, ignorare il resto di questo articolo.
Risolvere i problemi di Terraform in Azure
Risolvere i problemi comuni relativi all'uso di Terraform in Azure