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 -aocat /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.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.