🎁 Meld je nu aan en krijg maximaal 30 minuten gratis online AI-gebruik. Geen creditcard nodig.

Terraform Interviewvragen en Antwoorden: 25 Vragen over State, Modules en Veilige Wijzigingen

August 28, 2026
Terraform interviewvragen met antwoorden over state, backends, locking, modules, omgevingen, drift, imports, lifecycle-regels en veilige wijzigingsworkflows.
Terraform Interviewvragen en Antwoorden: 25 Vragen over State, Modules en Veilige Wijzigingen
terraform interviewvragen
terraform interviewvragen en antwoorden
terraform state interview
devops terraform interview

Terraform-interviews draaien om state, omdat de meeste echte problemen daaruit voortkomen: wie beheert het, wie kan het tegelijkertijd aanpassen, en wat gebeurt er als de werkelijkheid ervan afwijkt. Daarna komen modules, omgevingen, veilige wijzigingen en hoe je Terraform in een team draait.

Hieronder staan 25 vragen met antwoorden. HashiCorp wijzigde in 2023 de licentie van Terraform, en er bestaat een community-fork genaamd OpenTofu, dus noem welke van de twee het team gebruikt als dat ter sprake komt. De kernideeën en commando's zijn voor beide hetzelfde.

Basis

1. Wat is Terraform, en wat is infrastructure as code?

Terraform is een tool om infrastructuur te definiëren in configuratiebestanden en toe te passen via provider-API's. Infrastructure as code betekent dat de opzet is vastgelegd, geversioneerd, gereviewd en herhaalbaar, in plaats van in elkaar geklikt in een console.

2. Wat is het verschil tussen declaratief en imperatief?

Terraform is declaratief: je beschrijft de gewenste eindtoestand, en Terraform bedenkt de stappen. Bij een imperatief script schrijf je de stappen zelf, en als je het twee keer draait kan het dingen kapotmaken.

3. Wat zijn de belangrijkste Terraform-commando's?

CommandoWat het doet
terraform initDownloadt providers en modules, stelt de backend in
terraform validateControleert of de configuratie geldig is
terraform fmtFormatteert de bestanden
terraform planToont wat er gaat veranderen
terraform applyVoert de wijzigingen door
terraform destroyVerwijdert de beheerde resources
terraform importHaalt een bestaande resource onder beheer
terraform stateBekijkt en bewerkt state

4. Wat zijn providers, resources en data sources?

Een provider is een plugin die met een API praat, zoals AWS, Azure of Kubernetes. Een resource is iets wat Terraform aanmaakt en beheert. Een data source leest informatie over iets wat al bestaat, zoals een bestaande VPC of de nieuwste AMI.

5. Wat zijn variables, outputs en locals?

Input variables parametriseren een configuratie. Outputs stellen waarden beschikbaar, voor gebruik op de commandoregel of door andere modules. Locals zijn benoemde expressies binnen een module, gebruikt om herhaling te voorkomen.

State

6. Wat is het Terraform state-bestand, en waarom is het belangrijk?

State koppelt je configuratie aan echte resources en slaat hun attributen op. Terraform vergelijkt de configuratie, de state en de werkelijkheid om wijzigingen te plannen. Raak je de state kwijt, dan probeert Terraform mogelijk dingen opnieuw aan te maken die al bestaan. Er kunnen ook secrets in staan, dus behandel het als gevoelig.

7. Waar moet state worden opgeslagen?

In een remote backend, niet op de laptop van één persoon, bijvoorbeeld S3 met een DynamoDB-tabel of de nieuwere native S3-lock, Azure Storage, Google Cloud Storage of Terraform Cloud. Zet versioning aan op de bucket, plus encryptie en beperkte toegang.

8. Wat is state locking?

Het voorkomt dat twee personen of pipelines tegelijk applyen en de state beschadigen. De meeste remote backends ondersteunen het. Als een run crasht, moet je misschien een verouderde lock vrijgeven met terraform force-unlock, nadat je hebt gecontroleerd dat niemand nog aan het applyen is.

9. Wat is drift, en hoe ga je ermee om?

Drift is wanneer de echte infrastructuur afwijkt van de state, meestal omdat iemand het handmatig heeft aangepast. terraform plan (of plan -refresh-only) toont het. Besluit of je de wijziging terugdraait door te applyen, of de code aanpast zodat die overeenkomt.

10. Hoe breng je een bestaande resource onder Terraform?

Schrijf het resource-blok, en draai dan terraform import <address> <id>, of gebruik een import-blok in nieuwere versies. Draai daarna plan en pas de code aan tot er geen wijzigingen meer zijn.

11. Hoe splits je state over omgevingen of teams?

Gebruik aparte state per omgeving en component, bijvoorbeeld één voor netwerken, één per app en één per omgeving. Dit beperkt de blast radius en versnelt plans. Deel waarden via outputs en data sources of remote state.

Modules en structuur

12. Wat is een module, en wanneer schrijf je er een?

Een module is een herbruikbare groep resources met inputs en outputs. Schrijf er een wanneer je hetzelfde patroon herhaalt, zoals een VPC of een service, en je één gereviewde versie wilt. Houd modules klein en gefocust, met verstandige defaults, en geef ze een versie.

13. Hoe beheer je dev, staging en productie?

Veelgebruikte opties zijn aparte directories of repo's met hun eigen state en variabelebestanden, of workspaces. Veel teams geven de voorkeur aan aparte state per omgeving, omdat workspaces dezelfde code delen en het makkelijk maken om per ongeluk op de verkeerde omgeving toe te passen. Gebruik dezelfde modules met verschillende variabelewaarden.

14. Wat zijn workspaces?

Benoemde states binnen één backend en configuratie. Ze zijn handig voor tijdelijke kopieën van dezelfde setup, zoals testomgevingen per branch, maar vormen geen sterke scheiding voor productie.

15. Wat is het verschil tussen count en for_each?

count maakt een aantal kopieën, geïndexeerd op positie. for_each maakt er één per item in een map of set, met de naam als key. Geef de voorkeur aan for_each, want het verwijderen van een item uit het midden van een count-lijst verschuift de indexen en kan resources vernietigen en opnieuw aanmaken.

16. Wat doet depends_on?

Het voegt een expliciete afhankelijkheid toe wanneer Terraform die niet uit referenties kan afleiden. Gebruik het spaarzaam, want de meeste afhankelijkheden komen voort uit het verwijzen naar de attributen van een andere resource.

Veilige wijzigingen en operaties

17. Wat zijn lifecycle-regels?

create_before_destroy maakt eerst een vervanging, prevent_destroy blokkeert verwijdering, ignore_changes slaat attributen over die buiten Terraform zijn gewijzigd, en replace_triggered_by forceert vervanging wanneer een andere resource verandert.

18. Hoe ga je om met secrets in Terraform?

Hardcode ze niet. Gebruik een secrets manager of omgevingsvariabelen, markeer variabelen en outputs als sensitive, en onthoud dat waarden alsnog in de state kunnen belanden, dus bescherm de state. Vermijd het doorgeven van secrets via gewone variabelebestanden in versiebeheer.

19. Hoe review en apply je wijzigingen veilig?

Draai plan in een pull request, review de plan-output, vereis goedkeuring, en apply vanuit een pipeline met het opgeslagen plan, zodat wat is gereviewd ook daadwerkelijk draait. Let op destroy- of replace-regels in het plan.

20. Een plan laat zien dat het een database gaat vernietigen en opnieuw aanmaken. Wat doe je?

Stop en zoek uit waarom. Veelvoorkomende oorzaken zijn een gewijzigd immutable attribuut, een hernoemde resource, of een verplaatste module. Gebruik moved-blokken of terraform state mv om adreswijzigingen op te lossen, gebruik ignore_changes of prevent_destroy indien gepast, en maak een back-up voordat je iets riskants applyt.

21. Hoe hernoem of verplaats je een resource zonder deze te vernietigen?

Gebruik een moved-blok in de code, of terraform state mv om het adres in de state te wijzigen. Draai daarna plan en bevestig dat er geen destroy in staat.

22. Hoe pin je versies?

Gebruik required_version voor Terraform en required_providers met versiebeperkingen, en commit het bestand .terraform.lock.hcl zodat iedereen dezelfde provider-builds gebruikt. Upgrade bewust en lees de changelog.

Praktische en scenario-vragen

23. Wat zijn provisioners, en moet je ze gebruiken?

Provisioners draaien scripts op een resource na aanmaak. Het is een laatste redmiddel, omdat ze niet in de state worden bijgehouden en fouten moeilijk te hanteren zijn. Geef de voorkeur aan cloud-init, images gebouwd met een tool zoals Packer, of configuration management.

24. Hoe zou je Terraform structureren voor een team met meerdere omgevingen?

"Een repo voor gedeelde modules met versioned releases, en een live-repo met een directory per omgeving en component. Elk heeft zijn eigen remote state met locking. Een pipeline draait fmt, validate en plan op pull requests, vereist goedkeuring, en applyt bij merge. Toegang gaat via kortlevende credentials, en policy-checks vangen riskante wijzigingen op."

25. Iemand heeft een resource in de console gewijzigd en nu wil Terraform het terugdraaien. Wat doe je?

Zoek uit waarom diegene het heeft gewijzigd. Als het een dringende fix was, werk dan de code bij zodat die overeenkomt en apply, zodat de wijziging behouden blijft. Als het een fout was, apply dan om het terug te draaien. Voeg daarna maatregelen toe, zoals het beperken van schrijftoegang tot de console, zodat het niet weer gebeurt.

Hoe je je voorbereidt

Maak een klein project met een remote backend, een module, en twee omgevingen. Oefen een rename met een moved-blok, een import, en een drift-fix. Wees klaar om te vertellen over een keer dat een plan je verraste en wat je deed. Voor gerelateerde cloud-onderwerpen, zie onze AWS interview guide en Kubernetes guide.

Spreek je antwoorden hardop uit, vooral de state-vragen, waar uitleg snel verwarrend wordt. Een transcript van een mock-interview laat zien waar je aarzelde. Volg de regels van de werkgever over AI-tools in elk live interview.

Oefen Terraform interviewantwoorden met YesToTheOffer

Doe een mock technisch interview, leg state en modules hardop uit en bekijk achteraf je transcript. 30 gratis minuten, geen abonnement.

iOS & Android — Binnenkort
Bekijk prijzen