Terraform als Infrastructure as Code · Les

Modules en hergebruik van code

Leer hoe Terraform-modules herbruikbare infrastructuur bundelen, inputs accepteren, outputs beschikbaar maken en configuraties DRY en onderhoudbaar houden.

Les 4 van 413 stappen

Modules en hergebruik van code is een gratis Terraform als Infrastructure as Code-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Terraform als Infrastructure as Code. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Terraform als Infrastructure as Code bevat in totaal 4 lessen.

Waarom modules?

Het kopiëren en plakken van dezelfde resources in verschillende omgevingen leidt tot afwijkingen en bugs. Een module is een herbruikbare, geparametriseerde container met Terraform-resources die je meerdere keren met verschillende inputs kunt aanroepen, zodat je code DRY blijft.

Elke configuratie is een module

De map waarin je terraform apply uitvoert, is de rootmodule. Modules die deze aanroept, zijn childmodules. Je gebruikt dus al modules — je voegt er alleen meer toe.

Opbouw van een module

Een module is gewoon een map met .tf-bestanden, meestal met deze indeling:

  • main.tf — de resources.
  • variables.tf — inputvariabelen.
  • outputs.tf — beschikbare waarden.

Inputs definiëren

Inputs worden als variabelen in de module gedeclareerd, zodat aanroepers het gedrag kunnen aanpassen.

variable "bucket_name" {
  type = string
}
variable "versioning" {
  type    = bool
  default = false
}

De inputs gebruiken

De resources van de module verwijzen naar de variabelen ervan.

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
}

Outputs beschikbaar maken

Outputs retourneren nuttige waarden aan de aanroeper, zoals ID's of ARN's.

output "bucket_arn" {
  value = aws_s3_bucket.this.arn
}

Een module aanroepen

De rootmodule roept een childmodule aan met een module-blok en geeft daarbij inputs door.

module "logs" {
  source     = "./modules/bucket"
  bucket_name = "app-logs"
  versioning  = true
}

Verwijzen naar module-outputs

Je gebruikt de outputs van een module elders in je configuratie met module.NAME.OUTPUT.

resource "aws_s3_bucket_policy" "p" {
  bucket = module.logs.bucket_arn
}

Modulebronnen

De source kan een lokaal pad, een Git-URL of de openbare Terraform Registry zijn.

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"
}

Modules van versies voorzien

Leg voor modules uit de registry altijd een version vast, zodat upgrades bewust worden uitgevoerd. Voer terraform init uit nadat je modules hebt toegevoegd of gewijzigd, zodat ze worden gedownload.

Goede modules ontwerpen

Houd modules gericht (één logisch onderdeel), stel alleen de benodigde inputs beschikbaar, documenteer outputs en vermijd waarden die specifiek voor een omgeving zijn hardgecodeerd. Kleine, combineerbare modules zijn beter dan één enorme module.

Korte controle

Test je kennis van modules.

Samenvatting

Modules maken Terraform herbruikbaar en DRY.

  • Een module is een map met .tf-bestanden, variabelen (inputs) en outputs.
  • Roep een module aan met een module-blok en een source; gebruik de resultaten via module.NAME.OUTPUT.
  • Bronnen kunnen lokaal, Git of de registry zijn; leg version vast en voer init uit.
  • Ontwerp kleine, gerichte en goed gedocumenteerde modules.
Gratis beginnen

Leer Terraform als Infrastructure as Code met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Modules en hergebruik van code” gratis?

Ja — de volledige tekst van “Modules en hergebruik van code” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Terraform als Infrastructure as Code wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Terraform als Infrastructure as Code bevat in totaal 4 lessen.

Wat leer ik in “Modules en hergebruik van code”?

Leer hoe Terraform-modules herbruikbare infrastructuur bundelen, inputs accepteren, outputs beschikbaar maken en configuraties DRY en onderhoudbaar houden. Je oefent met Terraform als Infrastructure as Code door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Terraform als Infrastructure as Code te beginnen?

Ervaring vooraf is niet nodig. Terraform als Infrastructure as Code op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Modules en hergebruik van code”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Terraform als Infrastructure as Code?

Ja. Elke les over Terraform als Infrastructure as Code bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Providers en resources
  2. Variabelen en outputs
  3. Basisprincipes van statebeheer
  4. Modules en hergebruik van code
← Terug naar Terraform als Infrastructure as Code