1 15/10/2026 9 min

Su Ubuntu 20.04 LTS la strada pulita per installare Terraform è usare il repository ufficiale di HashiCorp. Così eviti pacchetti vecchi o build non allineate, e ti porti dietro un flusso di aggiornamento ripetibile. Se devi lavorare in modo serio su infrastruttura, il punto non è solo “far partire il binario”: è sapere da dove arriva, come verificarlo e come mantenerlo aggiornato senza sporcare il sistema.

Terraform non è un demone né un servizio systemd: è un eseguibile CLI. Questo cambia il modo di ragionare sull’installazione. Non devi aprire porte, non devi registrare unità, ma devi curare bene dipendenze, chiavi del repository, PATH e compatibilità con i moduli/provider che userai dopo. In pratica: installazione semplice, disciplina alta.

Prerequisiti reali prima di toccare il sistema

Parti da una macchina Ubuntu 20.04 LTS aggiornata e con privilegi sudo. Se il sistema è in produzione o condiviso, considera l’impatto del change: aggiungere un repository di terze parti modifica la superficie di aggiornamento del sistema, quindi va fatto con consapevolezza e con la possibilità di tornare indietro in fretta.

Le verifiche minime utili prima di iniziare sono queste:

  • versione del sistema con lsb_release -a o cat /etc/os-release;
  • accesso a Internet verso i mirror APT e verso releases.hashicorp.com;
  • permessi sudo funzionanti con sudo -v.

Se usi proxy, repository aziendali o un egress filtrato, verifica prima che il traffico HTTPS verso HashiCorp sia consentito. Qui i problemi più comuni non sono “Terraform non si installa”, ma “APT non riesce a scaricare la chiave”, “il mirror non risponde” o “il sistema non risolve il nome del repository”.

Metodo consigliato: repository ufficiale HashiCorp

Per Ubuntu 20.04 il metodo più pulito è configurare il repository ufficiale, importare la chiave di firma nel modo moderno e installare il pacchetto con APT. Evita vecchi tutorial che usano apt-key: è deprecato e ti lascia una configurazione più fragile da auditare.

La sequenza sotto è quella che in genere uso quando devo rendere l’installazione ripetibile e leggibile anche a distanza di mesi.

1) Aggiorna l’indice pacchetti e installa i prerequisiti

Prima di aggiungere il repository, porta il sistema in uno stato coerente e installa i pacchetti necessari alla gestione della chiave e del trasporto HTTPS.

sudo apt update
sudo apt install -y gnupg software-properties-common curl

Se apt update fallisce, fermati lì: il problema non è Terraform ma la base APT. Controlla DNS, routing, proxy o eventuali repository già rotti nel file /etc/apt/sources.list e nei file sotto /etc/apt/sources.list.d/.

2) Aggiungi la chiave GPG nel keyring dedicato

HashiCorp pubblica una chiave di firma che puoi salvare nel formato consigliato da APT. Il punto importante è non spargere chiavi nel keyring globale: meglio un file dedicato, chiaro da controllare e da revocare se necessario.

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

Dopo il download, puoi verificare che il file esista e non sia vuoto:

ls -l /usr/share/keyrings/hashicorp-archive-keyring.gpg

Se vuoi un controllo più rigoroso, ispeziona la chiave importata con gpg --show-keys. In ambienti sensibili, confronta anche il fingerprint con quello pubblicato dal vendor sul sito ufficiale o nella documentazione di rilascio.

3) Registra il repository APT di HashiCorp

Ora aggiungi la sorgente pacchetti specifica per Ubuntu focal. Il file dedicato è preferibile perché separa chiaramente i repository di terze parti da quelli base del sistema.

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com focal main" | sudo tee /etc/apt/sources.list.d/hashicorp.list > /dev/null

Controlla il contenuto del file appena creato:

cat /etc/apt/sources.list.d/hashicorp.list

Qui l’errore classico è usare una release sbagliata. Su Ubuntu 20.04 la suite è focal. Se scrivi altro, APT può non trovare il pacchetto giusto o pescare metadati non coerenti.

4) Aggiorna l’indice e installa Terraform

Una volta registrato il repository, ricarica l’indice e installa il pacchetto.

sudo apt update
sudo apt install -y terraform

La verifica minima è la versione del binario:

terraform version

Atteso: un output con la versione installata e la nota sulla presenza o meno di aggiornamenti. Se il comando non viene trovato, il problema è quasi sempre nel PATH o in un’installazione incompleta. Se invece il pacchetto non si installa, guarda il messaggio di APT: spesso dice chiaramente se la chiave manca, se il repository non è raggiungibile o se la suite è errata.

Verifica della firma e controllo del canale di installazione

Per chi amministra sistemi con un minimo di disciplina, “ho installato il pacchetto” non basta. Devi sapere che il binario arriva dal repository atteso e che la catena di fiducia è sensata. Il controllo base è semplice: il file del repository deve puntare al keyring dedicato e il pacchetto deve risultare installato da APT, non da tarball messi a mano in giro per il filesystem.

Puoi controllare da dove arriva il pacchetto con:

apt-cache policy terraform

Qui ti interessa vedere il repository apt.releases.hashicorp.com tra le origini disponibili e una versione installabile coerente. Se compare una priorità strana o un’origine inattesa, hai probabilmente un pinning o un repository aggiuntivo che interferisce.

Un altro controllo utile è il percorso effettivo del binario:

which terraform
readlink -f "$(which terraform)"

Su un’installazione APT pulita il binario di solito sta in /usr/bin/terraform. Se lo trovi altrove, probabilmente hai una seconda installazione, per esempio in /usr/local/bin o sotto un tool di version management. In quel caso rischi di eseguire una versione diversa da quella appena installata.

Installazione manuale del binario: quando serve davvero

In alcuni ambienti il repository APT non è accettabile: policy di sicurezza, host senza accesso internet, sistemi temporanei o pipeline isolate. In quel caso puoi installare Terraform manualmente scaricando l’archivio ufficiale. È una strada valida, ma richiede più disciplina perché perdi la comodità degli aggiornamenti gestiti da APT.

La logica è questa: scarichi il pacchetto corrispondente all’architettura, verifichi il checksum o la firma se previsto dal processo interno, estrai il binario in una directory del PATH e controlli la versione. Non è il metodo che consiglio come default su Ubuntu 20.04, ma in ambienti chiusi è spesso l’unico possibile.

Esempio di flusso base, da adattare alla versione desiderata:

cd /tmp
curl -O https://releases.hashicorp.com/terraform/1.7.5/terraform_1.7.5_linux_amd64.zip
unzip terraform_1.7.5_linux_amd64.zip
sudo mv terraform /usr/local/bin/
sudo chmod 0755 /usr/local/bin/terraform
terraform version

Qui il punto critico è la verifica dell’integrità del file scaricato. Se il workflow aziendale prevede checksum SHA256 o firma, usali sempre. Se non hai modo di verificarli, stai accettando un rischio che in un contesto di produzione non è elegante da difendere.

Gestione delle versioni senza caos

Terraform cambia spesso abbastanza da rendere rilevante il controllo di versione. Non è raro che un modulo o un provider richieda una release minima precisa. Per questo, dopo l’installazione, conviene decidere subito se vuoi una versione fissa o una strategia di aggiornamento controllata.

Con APT, l’aggiornamento segue il normale flusso di sistema:

sudo apt update
sudo apt upgrade terraform

Se vuoi bloccare una versione nota e testata, puoi usare il pinning o il hold del pacchetto:

sudo apt-mark hold terraform

Per sbloccarlo più avanti:

sudo apt-mark unhold terraform

Questo è utile quando il tuo stack di moduli è sensibile ai cambiamenti. In pratica, se hai validato una versione in CI e vuoi evitare sorprese sul laptop di un operatore o su una macchina jump, il hold ti evita aggiornamenti involontari.

Primo test operativo: non limitarti a vedere la versione

Dopo l’installazione, il test più utile non è solo terraform version, ma una inizializzazione minima in una directory vuota. Così verifichi che il binario funzioni davvero e che riesca a parlare con il registry dei provider, se la rete lo consente.

mkdir -p ~/tf-test
cd ~/tf-test
cat > main.tf <<'EOF'
terraform { required_version = ">= 1.0.0"
}
EOF
terraform init

Se il sistema è online, terraform init inizializza la directory e conferma che il comando è operativo. Se fallisce per mancanza di rete, non hai un problema di installazione: hai un problema di connettività verso il registry. In ambienti offline, questo comportamento è atteso e va gestito con mirror interni o cache dei provider.

Un controllo ancora più rapido, utile quando vuoi escludere problemi di shell o PATH, è:

terraform -help | head

Se questo comando produce l’help, il binario risponde correttamente. Se invece ricevi “command not found”, il problema è nel PATH o nell’installazione. Se ricevi errori di librerie mancanti, allora hai un sistema più rotto del previsto e conviene verificare il pacchetto con dpkg -L terraform e dpkg -s terraform.

Problemi tipici su Ubuntu 20.04 e come leggerli senza perdere tempo

Il caso più comune è il repository non raggiungibile. Qui il sintomo di solito è un errore APT con timeout o impossibilità di risolvere il nome host. Prima di cambiare configurazioni a caso, fai un test diretto con curl -I https://apt.releases.hashicorp.com o almeno con getent hosts apt.releases.hashicorp.com. Se DNS e rete falliscono, Terraform non c’entra nulla.

Un altro caso frequente è la chiave GPG non correttamente registrata. Il segnale è un errore di firma o un avviso tipo “NO_PUBKEY”. In quel caso ricontrolla il file in /usr/share/keyrings/hashicorp-archive-keyring.gpg e il riferimento nel file /etc/apt/sources.list.d/hashicorp.list. Spesso basta un refuso nel percorso o un download interrotto per rompere tutto.

Infine, se hai più versioni di Terraform installate, i sintomi sono più subdoli: comandi che sembrano funzionare ma usano una release diversa da quella attesa. Per questo conviene sempre controllare which terraform e terraform version insieme. Il primo dice da dove arriva il binario, il secondo dice quale versione stai davvero eseguendo.

Rimozione pulita e rollback del change

Se qualcosa va storto, il rollback è lineare. Con installazione APT, puoi rimuovere Terraform e togliere il repository aggiunto. Questo è il vantaggio di una configurazione ordinata: non lasci residui inutili nel sistema.

sudo apt remove -y terraform
sudo rm -f /etc/apt/sources.list.d/hashicorp.list
sudo rm -f /usr/share/keyrings/hashicorp-archive-keyring.gpg
sudo apt update

Prima di eseguire la rimozione, valuta il blast radius: se altri utenti o pipeline dipendono da Terraform su quella macchina, stai interrompendo il loro flusso. In un ambiente condiviso, avvisa o pianifica la finestra di change. Se invece hai installato manualmente il binario, il rollback è ancora più semplice: rimuovi il file da /usr/local/bin/terraform o dalla directory in cui l’hai posizionato, dopo aver verificato che non sia usato da script automatici.

Assunzione operativa: su Ubuntu 20.04 LTS la via APT con repository ufficiale è la scelta migliore per una workstation o una macchina di amministrazione; la strada manuale ha senso solo quando il contesto di rete o di compliance la impone.