🎁 Registrati ora e ottieni fino a 30 minuti gratuiti di IA online. Nessuna carta di credito richiesta.

Domande e risposte per il colloquio su Terraform: 25 domande su stato, moduli e modifiche sicure

August 28, 2026
Domande per il colloquio su Terraform con risposte su stato, backend, locking, moduli, ambienti, drift, import, regole del ciclo di vita e flussi di modifiche sicure.
Domande e risposte per il colloquio su Terraform: 25 domande su stato, moduli e modifiche sicure
domande per il colloquio su terraform
domande e risposte per il colloquio su terraform
colloquio sullo stato di terraform
colloquio devops terraform

I colloqui su Terraform si concentrano sullo state, perché la maggior parte dei problemi reali nasce proprio da lì: chi lo detiene, chi può modificarlo nello stesso momento e cosa succede quando la realtà si discosta da ciò che è stato dichiarato. Subito dopo vengono i moduli, gli ambienti, le modifiche sicure e come gestire Terraform in un team.

Di seguito trovi 25 domande con le relative risposte. HashiCorp ha cambiato la licenza di Terraform nel 2023 ed esiste il fork comunitario OpenTofu, quindi se l'argomento emerge vale la pena menzionare quale dei due usa il team. I concetti e i comandi principali sono gli stessi per entrambi.

Basi

1. Cos'è Terraform e cosa si intende per infrastructure as code?

Terraform è uno strumento per definire l'infrastruttura in file di configurazione e applicarla tramite le API dei provider. Infrastructure as code significa che la configurazione viene scritta, versionata, revisionata e resa ripetibile, invece di essere creata cliccando in una console.

2. Qual è la differenza tra approccio dichiarativo e imperativo?

Terraform è dichiarativo: descrivi lo stato finale che vuoi ottenere e Terraform capisce quali passi servono. Con uno script imperativo, invece, scrivi tu i passi e rieseguirlo due volte può rompere le cose.

3. Quali sono i comandi principali di Terraform?

ComandoCosa fa
terraform initScarica i provider e i moduli, configura il backend
terraform validateVerifica che la configurazione sia valida
terraform fmtFormatta i file
terraform planMostra cosa cambierà
terraform applyApplica le modifiche
terraform destroyRimuove le risorse gestite
terraform importPorta una risorsa esistente sotto la gestione di Terraform
terraform stateIspeziona e modifica lo state

4. Cosa sono i provider, le risorse e le data source?

Un provider è un plugin che comunica con un'API come AWS, Azure o Kubernetes. Una risorsa è qualcosa che Terraform crea e gestisce. Una data source legge informazioni su qualcosa che esiste già, come una VPC esistente o l'AMI più recente.

5. Cosa sono le variabili, gli output e le local?

Le variabili di input parametrizzano una configurazione. Gli output espongono valori, utilizzabili da riga di comando o da altri moduli. Le local sono espressioni con un nome all'interno di un modulo, usate per evitare di ripetersi.

State

6. Cos'è il file di state di Terraform e perché è così importante?

Lo state mappa la configurazione sulle risorse reali e ne memorizza gli attributi. Terraform confronta la configurazione, lo state e la realtà per pianificare le modifiche. Se perdi lo state, Terraform potrebbe provare a ricreare risorse che esistono già. Può anche contenere segreti, quindi va trattato come materiale sensibile.

7. Dove conviene archiviare lo state?

In un backend remoto, non sul portatile di una persona: ad esempio S3 con una tabella DynamoDB o il più recente locking nativo di S3, Azure Storage, Google Cloud Storage o Terraform Cloud. Attiva il versioning sul bucket, la cifratura e un accesso ristretto.

8. Cos'è il locking dello state?

Impedisce a due persone o pipeline di applicare contemporaneamente e corrompere lo state. La maggior parte dei backend remoti lo supporta. Se un'esecuzione si interrompe bruscamente, potrebbe servirti rilasciare un lock rimasto bloccato con terraform force-unlock, dopo aver verificato che nessuno stia ancora applicando.

9. Cos'è il drift e come lo gestisci?

Il drift si verifica quando l'infrastruttura reale differisce dallo state, di solito perché qualcuno l'ha modificata a mano. terraform plan (o plan -refresh-only) lo evidenzia. Devi decidere se annullare la modifica applicando, oppure aggiornare il codice per allinearlo.

10. Come si porta una risorsa esistente sotto Terraform?

Scrivi il blocco della risorsa, poi esegui terraform import <address> <id>, oppure usa un blocco import nelle versioni più recenti. Dopodiché esegui plan e correggi il codice finché non mostra più modifiche.

11. Come si suddivide lo state tra ambienti o team?

Usa state separati per ogni ambiente e componente, ad esempio uno per il networking, uno per ciascuna applicazione e uno per ambiente. Questo limita il raggio d'azione e velocizza i plan. Condividi i valori tramite output e data source oppure remote state.

Moduli e struttura

12. Cos'è un modulo e quando conviene scriverne uno?

Un modulo è un gruppo riutilizzabile di risorse con input e output. Conviene scriverne uno quando si ripete lo stesso schema, come una VPC o un servizio, e si vuole una versione unica e revisionata. Mantieni i moduli piccoli e mirati, con default sensati, e versionati.

13. Come si gestiscono dev, staging e produzione?

Le opzioni più comuni sono directory o repository separati con il proprio state e i propri file delle variabili, oppure i workspace. Molti team preferiscono uno state separato per ambiente, dato che i workspace condividono lo stesso codice e rendono facile applicare per errore all'ambiente sbagliato. Usa gli stessi moduli con valori diversi delle variabili.

14. Cosa sono i workspace?

Stati con un nome all'interno di un unico backend e di un'unica configurazione. Sono utili per copie temporanee della stessa configurazione, come ambienti di test per branch, ma non rappresentano una separazione solida per la produzione.

15. Qual è la differenza tra count e for_each?

count crea un certo numero di copie indicizzate per posizione. for_each ne crea una per ogni elemento di una mappa o di un set, con chiave il nome. Preferisci for_each, perché rimuovere un elemento dal mezzo di una lista count sposta gli indici e può distruggere e ricreare le risorse.

16. A cosa serve depends_on?

Aggiunge una dipendenza esplicita quando Terraform non riesce a dedurla dai riferimenti. Usalo con parsimonia, dato che la maggior parte delle dipendenze deriva dal riferimento agli attributi di un'altra risorsa.

Modifiche sicure e operazioni

17. Cosa sono le lifecycle rules?

create_before_destroy crea prima la sostituzione, prevent_destroy blocca l'eliminazione, ignore_changes ignora gli attributi modificati fuori da Terraform e replace_triggered_by forza la sostituzione quando un'altra risorsa cambia.

18. Come si gestiscono i segreti in Terraform?

Non inserirli direttamente nel codice. Usa un secrets manager o variabili d'ambiente, contrassegna variabili e output come sensitive e ricorda che i valori possono comunque finire nello state, quindi proteggi lo state. Evita di passare segreti tramite semplici file delle variabili messi sotto controllo di versione.

19. Come si revisionano e si applicano le modifiche in sicurezza?

Esegui plan in una pull request, rivedi l'output del plan, richiedi l'approvazione e applica da una pipeline usando il plan salvato, così ciò che è stato revisionato è ciò che viene eseguito. Fai attenzione alle righe di destroy o replace nel plan.

20. Un plan mostra che distruggerà e ricreerà un database. Cosa fai?

Fermati e scopri il perché. Le cause più comuni sono un attributo immutabile modificato, una risorsa rinominata o un modulo spostato. Usa i blocchi moved o terraform state mv per correggere i cambi di indirizzo, usa ignore_changes o prevent_destroy se appropriato e fai un backup prima di qualsiasi apply rischioso.

21. Come si rinomina o si sposta una risorsa senza distruggerla?

Usa un blocco moved nel codice, oppure terraform state mv per cambiarne l'indirizzo nello state. Poi esegui il plan e conferma che non ci sia alcun destroy.

22. Come si bloccano le versioni?

Usa required_version per Terraform e required_providers con i vincoli di versione, e committa il file .terraform.lock.hcl così tutti usano le stesse build dei provider. Aggiorna in modo deliberato e leggi il changelog.

Domande pratiche e scenari

23. Cosa sono i provisioner e conviene usarli?

I provisioner eseguono script su una risorsa dopo la creazione. Sono l'ultima risorsa, perché non sono tracciati nello state e gli errori sono difficili da gestire. Preferisci cloud-init, immagini costruite con uno strumento come Packer o la configuration management.

24. Come struttureresti Terraform per un team con diversi ambienti?

"Un repo per i moduli condivisi con release versionate, e un repo live con una directory per ambiente e componente. Ognuno ha il proprio state remoto con locking. Una pipeline esegue fmt, validate e plan sulle pull request, richiede l'approvazione e applica al merge. L'accesso avviene tramite credenziali a breve scadenza, e i controlli di policy intercettano le modifiche rischiose."

25. Qualcuno ha modificato una risorsa dalla console e ora Terraform vuole ripristinarla. Cosa fai?

Scopri perché l'hanno modificata. Se era una correzione urgente, aggiorna il codice per allinearlo e applica, così la modifica viene mantenuta. Se è stato un errore, applica per ripristinare. Poi aggiungi dei controlli, come limitare l'accesso in scrittura dalla console, così non succede di nuovo.

Come prepararsi

Crea un piccolo progetto con un backend remoto, un modulo e due ambienti. Esercitati su una rinomina con un blocco moved, un import e la correzione di un drift. Preparati a raccontare una volta in cui un plan ti ha sorpreso e cosa hai fatto. Per argomenti cloud correlati, vedi la nostra guida alle domande di colloquio su AWS e la guida su Kubernetes.

Pronuncia le risposte ad alta voce, in particolare le domande sullo state, dove le spiegazioni diventano confuse. La trascrizione di un colloquio simulato mostra dove hai esitato. Segui le regole del datore di lavoro sugli strumenti di AI in qualsiasi colloquio dal vivo.

Esercitati con le risposte per il colloquio su Terraform con YesToTheOffer

Fai un colloquio tecnico simulato, spiega ad alta voce stato e moduli, e rivedi la trascrizione in seguito. 30 minuti gratuiti, senza abbonamento.

iOS & Android — In arrivo
Vedi i prezzi