28 Domande e risposte sull'intervista in tempo reale di Terraform
Pubblicato: 2022-03-11Ecco 28 domande e risposte per interviste Terraform in tempo reale con un elenco e una spiegazione di comandi importanti spesso richiesti nelle interviste.
L'aumento dell'uso delle tecnologie cloud ha aperto molte opportunità nel mondo del DevOps. In futuro, le tecnologie cloud saranno un argomento comune per le domande del colloquio e la conoscenza di base del cloud e dell'infrastruttura come codice, gli strumenti IAC saranno un must per i ruoli DevOps.
Cos'è Terraform?
Terraform è uno degli strumenti IAC più popolari utilizzati da ogni ingegnere cloud. Ci consente di definire sia le risorse cloud che quelle locali in file di configurazione leggibili dall'uomo e quindi fornire queste risorse a livello di codice. La caratteristica più notevole di Terraform è che, a differenza della maggior parte degli strumenti IAC disponibili, non è limitato a un singolo provider cloud. Puoi utilizzare Terraform per eseguire le tue applicazioni su più piattaforme cloud contemporaneamente.
Nel caso ti stia chiedendo quali tecnologie supporta terraform, ecco un piccolo elenco:
- Servizi Web Amazon (AWS)
- Piattaforma Google Cloud (GCP)
- Microsoft Azure
- IBM Cloud
- VMware vSphere
- Spazio server
Oceano Digitale - Infrastruttura Oracle Cloud
- Yandex. Nube
- OpenStack.
Per andare avanti nella tua carriera come DevOps Engineers, Cloud Architects, Developers o Administrator, dovrai affrontare le domande del colloquio Terraform. Abbiamo compilato un elenco delle principali domande del colloquio su Terraform che dovrebbero aiutarti a migliorare la tua conoscenza di Terraform.
Domande e risposte sull'intervista generale a Terraform
# 1. Cosa intendi per Terraform?
Terraform è uno strumento IAC open source creato da HashiCorp. Viene utilizzato per creare, aggiornare, eliminare e creare versioni dell'infrastruttura su più piattaforme cloud.
#2. Quali sono i motivi per scegliere Terraform per DevOps?
L'utilizzo di Terraform per il provisioning dell'infrastruttura non lascia spazio a errori umani, migliorando così la qualità, la coerenza e l'efficienza dell'infrastruttura cloud e on-premise. Terraform utilizza il linguaggio HCL, che è abbastanza simile a JSON e facile da imparare e da usare. A differenza degli altri strumenti IAC offerti da provider cloud come Cloudformation for AWS, possiamo utilizzare Terraform con un certo numero di piattaforme cloud contemporaneamente. Ciò evita la necessità di apprendere più strumenti IAC e migliora l'ambito della collaborazione.
#3. Come funziona Terraform?
Terraform utilizza plug-in chiamati fornitori Terraform per interagire con le API su piattaforme cloud e fornire le nostre risorse. Come utente finale, il flusso di lavoro di terraform ha tre fasi.
Scrivi : crea l'infrastruttura come codice.
Piano : Anteprima delle modifiche che Terraform effettuerà prima dell'applicazione.
Applica : fornisce l'infrastruttura e applica le modifiche.
#4. Cosa intendi per nuvola Terraform?
Terraform Cloud è un ambiente remoto ottimizzato per il flusso di lavoro Terraform. Fornisce funzionalità come aree di lavoro e blocco dello stato, che consente alle persone di grandi team di collaborare.
#5. Cosa intendi per Stato in Terraform?
In quanto strumento IAC, terraform dovrebbe conoscere lo stato attuale delle configurazioni e delle infrastrutture sotto la sua gestione. Terraform memorizza queste informazioni in un file chiamato file di stato.
#6. Qual è il vantaggio di Terraform State?
Terraform State consente a Terraform di mappare le risorse del mondo reale alla tua configurazione, tenere traccia dei metadati e migliorare le prestazioni durante la pianificazione di modifiche per infrastrutture complesse. È un componente critico di Terraform.
#7. Cosa intendi per Terraform Backend?
Il backend Terraform è la piattaforma in cui vengono archiviati gli snapshot di Terraform State. Per impostazione predefinita, Terraform utilizza un back-end chiamato local per memorizzare lo stato come file locale sul disco. Tutti gli altri backend supportati sono una sorta di servizio di archiviazione remota.
#8. Che cos'è un provider in Terraform?
I provider in Terraform sono plug-in che consentono a Terraform di interagire con provider cloud, provider SaaS e altre API. Ad esempio, se intendiamo utilizzare Terraform per il provisioning dell'infrastruttura su AWS, dovremo dichiarare un provider AWS nei nostri file di configurazione.
#9. Chi gestisce i fornitori di terraform?
I provider sono distribuiti separatamente da Terraform stessa. Come utente Terraform, chiunque può sviluppare i propri provider. Esistono alcuni provider standard gestiti esplicitamente da Hashicorp.
# 10. Cos'è Sentinella?
Sentinel è una policy come strumento di codice utilizzato per imporre configurazioni standard per le risorse distribuite da Terraform. Può essere utilizzato dalle organizzazioni per scopi di conformità e governance.
# 11. Cosa capisci per moduli in Terraform?
Un modulo Terraform è un contenitore standard per più risorse utilizzate insieme per fornire e configurare risorse. Ad esempio, puoi creare un "modulo VPC" per la tua organizzazione che fornisce un VPC standard e altre risorse come sottoreti e gateway Internet. I moduli possono essere condivisi pubblicamente tramite il registro dei moduli pubblici e privatamente tramite il registro dei moduli privati.
# 12. Qual è il vantaggio dell'utilizzo dei moduli in terraform?
I moduli Terraform ci consentono di creare un'astrazione logica sulla parte superiore di un set di risorse. L'utilizzo dei moduli ci consente di mantenere e riutilizzare una configurazione standard per le risorse. Possono essere sottoposti a versionamento e condivisi con i membri dei tuoi team per fornire risorse in modo standard.
# 13. Che cos'è il registro dei moduli privati?
Una funzione Terraform Cloud del registro dei moduli privati ci consente di condividere i moduli Terraform nella nostra organizzazione.
Domande e risposte per interviste avanzate su Terraform
# 14. Come possiamo esportare i dati da un modulo all'altro?
Possiamo esportare i dati da un modulo definendo i blocchi di output nei file di configurazione del modulo. Questi dati possono quindi essere trasferiti come parametro al modulo di destinazione.
# 13. Come puoi definire le dipendenze in Terraform?
Terraform ha una gestione delle dipendenze integrata. Terraform ha due tipi di dipendenze tra le risorse: dipendenze implicite ed esplicite.
Le dipendenze implicite, come suggerisce il nome, vengono rilevate automaticamente da Terraform. Questo è quando l'output di una "risorsa A" viene utilizzato nella "risorsa B". Terraform rileva automaticamente che la "risorsa B" deve essere creata solo dopo la "risorsa A"

È possibile specificare dipendenze esplicite nei casi in cui due risorse dipendono internamente l'una dall'altra senza condividere alcun output. Questo può essere fatto utilizzando il parametro depend_on nel blocco di configurazione.
# 14. Cosa sono i Provisioner in Terraform?
I Provisioner sono risorse Terraform utilizzate per eseguire script come parte della creazione o distruzione delle risorse. Ci sono due tipi di Provisioner in Terraform:
- local-exec: richiama uno script sulla macchina che esegue Terraform.
- remote-exec: richiama uno script su una risorsa remota dopo che è stata creata.
I fornitori devono essere usati solo come ultima risorsa in Terraform.
# 15. Qual è il blocco dati esterno in Terraform?
Proprio come il provisioner locale-exec, il bock di dati esterno può essere utilizzato per eseguire script su macchine che eseguono Terraform. La differenza tra un provisioner e il blocco dati esterno è che gli script nel blocco dati esterno possono restituire dati in formato JSON, mentre i provider non possono restituire alcun output. È importante notare che anche i blocchi di dati esterni devono essere l'ultima risorsa e non dovrebbero essere utilizzati se esiste un'alternativa migliore.
#16. In che modo due persone che utilizzano il cloud Terraform possono creare due diversi set di infrastrutture utilizzando la stessa directory di lavoro?
Utilizzando diversi spazi di lavoro. Questi utenti possono avviare le esecuzioni di Terraform in due aree di lavoro separate. Ciascuna area di lavoro dispone di un proprio file di stato, quindi finché le risorse non si sovrappongono, entrambi gli utenti possono eseguire correttamente il provisioning di due diversi set di infrastruttura utilizzando lo stesso codice.
#17. Cosa succede quando più ingegneri iniziano a distribuire l'infrastruttura utilizzando lo stesso file di stato?
Terraform ha una caratteristica molto importante chiamata "blocco dello stato" . Questa funzione garantisce che non vengano apportate modifiche al file di stato durante un'esecuzione e impedisce che il file di stato venga danneggiato. È importante notare che non tutti i backend Terraform supportano la funzione di blocco dello stato. Dovresti scegliere il backend giusto se questa funzione è un requisito.
#18. Che cos'è una risorsa nulla in Terraform?
Una risorsa nulla terraform è una configurazione che funziona come un blocco di risorse terraform standard ma non crea alcuna risorsa. Può sembrare una risorsa strana e inutile, ma può essere utile in varie situazioni per aggirare i limiti in Terraform.
# 19. Come puoi utilizzare lo stesso provider in Terraform con configurazioni diverse?
Usando l'argomento alias nel blocco del provider.
# 20. Hai un file di configurazione Terraform senza risorse. Cosa succede quando esegui il comando terraform apply
?
Terraform distruggerà tutte le risorse. Avviare una corsa a vuoto con il comando terraform apply
è esattamente come iniziare la corsa di distruzione terraform.
#21. Cosa succede se una risorsa è stata creata correttamente in terraform ma non è riuscita durante il provisioning?
Questo è uno scenario improbabile, ma quando ciò accade, la risorsa viene contrassegnata come contaminata e può essere ricreata riavviando la corsa di terraform.
#22. Quale valore della variabile TF_LOG
fornisce la registrazione PIÙ dettagliata?
TRACE è il valore più dettagliato e predefinito della variabile TF_LOG
.
# 23. Come puoi importare le risorse esistenti in Terraform Management?
Usando il comando terraform import
.
#24. Quale comando può essere utilizzato per visualizzare in anteprima il piano di esecuzione della terraform?
Il comando terraform plan
genera il piano di esecuzione delle modifiche che Terraform apporterà all'infrastruttura.
#25. Quale comando può essere utilizzato per riconciliare lo stato Terraform con l'effettiva infrastruttura del mondo reale?
Il comando terraform apply -refresh-only
viene utilizzato per riconciliare lo stato di Terraform con l'effettiva infrastruttura del mondo reale. È la nuova alternativa al comando di terraform refresh
, che ora è deprecato.
#26. Quale comando può essere utilizzato per passare da un'area di lavoro all'altra quando si utilizza Terraform Cloud?
L' terraform workspace select <workspace-name>
comando viene utilizzato per scegliere un'area di lavoro diversa.
#27. Quale comando viene utilizzato per eseguire la convalida della sintassi sui file di configurazione di terraform?
Il comando terraform validate
viene utilizzato per verificare se una configurazione è sintatticamente valida e internamente coerente.
#28. Quale comando viene utilizzato per creare nuovi spazi di lavoro nel cloud Terraform?
Il comando terraform workspace new <workspace-name>
viene utilizzato per creare un nuovo spazio di lavoro.
Alcuni altri importanti comandi di terraform per interviste tecniche.
- terraform init: inizializza i backend remoti; download provider e moduli remoti definiti nella configurazione.
- terraform init -upgrade: utilizzato per aggiornare i provider scaricati esistenti.
- piano terraform: genera il piano di esecuzione per la creazione o l'aggiornamento dell'infrastruttura.
- terraform apply: crea o aggiorna l'infrastruttura dopo aver richiesto la conferma all'utente.
- terraform apply –auto-approve: crea o aggiorna l'infrastruttura; la fase di approvazione dell'utente viene saltata.
- terraform destroy: cancella l'infrastruttura dopo aver richiesto la conferma all'utente.
- terraform destroy –auto-approve: elimina l'infrastruttura; la fase di approvazione dell'utente viene saltata.
- terraform fmt : esegue la scansione della directory corrente per i file di configurazione e li formatta secondo lo stile e il formato canonico HCP.
- terraform fmt –recursive: scansiona la directory corrente e le sottodirectory per i file di configurazione e le formatta secondo lo stile e il formato canonico HCP.
- terraform show: fornisce un output leggibile dall'uomo da un file di stato o piano.
Spero che le informazioni di cui sopra ti aiutino a ottenere un lavoro Terraform.