Terraform som Infrastructure as Code · leksjon

Oppretting av gjenbrukbare moduler

Lær å skrive egne Terraform-moduler ved å definere inndata, utdata og ressurser for å bygge modulære og fleksible konfigurasjoner.

Leksjon 2 av 411 trinn

Oppretting av gjenbrukbare moduler er en gratis leksjon i Terraform som Infrastructure as Code på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Terraform som Infrastructure as Code, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Terraform som Infrastructure as Code inneholder totalt 4 leksjoner.

Bygg egne Terraform-moduler

I den forrige leksjonen lærte vi om bruk av eksisterende Terraform-moduler. Nå skal vi se nærmere på hvordan De kan opprette Deres egne gjenbrukbare moduler!

Ved å utvikle moduler kan De kapsle inn vanlige infrastrukturmønstre, slik at konfigurasjonene blir ryddigere, mer konsistente og enklere å vedlikeholde.

Organisere modulfilene

En Terraform-modul er i hovedsak en samling .tf-filer som lagres i en egen katalog.

En modul katalog vil som et minimum inneholde:

  • variables.tf: Definerer inndatavariabler for modulen.
  • main.tf: Inneholder de faktiske ressursdeklarasjonene.
  • outputs.tf: Definerer utdata fra modulen.

De kan også inkludere versions.tf for provider-krav og README.md for dokumentasjon.

Modulinndata: Variabler

For å gjøre modulen fleksibel må De definere inndatavariabler. Disse lar brukerne av modulen tilpasse virkemåten uten å endre modulens kjernekode.

Variabler defineres ved hjelp av en variable-blokk, der De angir description, type og eventuelt en default-verdi.

Eksempel: Definere en modulvariabel

Slik kan De definere en variabel for en instanstype i modulens variables.tf-fil:

# variables.tf
variable "instance_type" {
  description = "The EC2 instance type to use."
  type        = string
  default     = "t2.micro"
}

Modulressurser: Kjernelogikken

Kjernen i modulen ligger i ressursdeklarasjonene. Dette er de faktiske skyressursene modulen skal klargjøre.

De plasserer disse ressursblokkene, for eksempel en AWS EC2-instans eller en S3-bøtte, i modulens main.tf-fil.

Ressurser i modulen vil ofte bruke inndatavariablene De har definert.

Ressursdeklarasjon med inndata

La oss deklarere en EC2-instans i main.tf ved hjelp av variabelen instance_type:

# main.tf
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Example AMI ID
  instance_type = var.instance_type
  tags = {
    Name = "MyWebServer"
  }
}

Modulutdata: Dele informasjon

På samme måte som moduler tar imot inndata, kan de også levere utdata. Disse er nyttige når De vil eksportere informasjon om ressursene modulen har opprettet.

Det kan for eksempel være ønskelig å sende ut den offentlige IP-adressen til en EC2-instans eller ARN-en til en S3-bøtte.

Utdata defineres i outputs.tf ved hjelp av en output-blokk.

Definere en modulutdataverdi

Slik definerer De en utdata for den offentlige IP-adressen til EC2-instansen vår i outputs.tf:

# outputs.tf
output "instance_public_ip" {
  description = "The public IP address of the EC2 instance."
  value       = aws_instance.web_server.public_ip
}

Kalle den nye modulen

Når modulen er definert, kan De bruke den i en rotkonfigurasjon (eller en annen modul), på samme måte som alle andre moduler.

De angir source (banen til modulmappen) og sender verdier til inndatavariablene.

# root_config/main.tf
module "my_web_server_module" {
  source        = "../my-ec2-module" # Path to your module
  instance_type = "t3.small"         # Override default
}

output "web_server_ip" {
  value = module.my_web_server_module.instance_public_ip
}

Kontroll av modulkomponenter

De har lært om de viktigste filene i en Terraform-modul. Hvilken fil brukes hovedsakelig til å definere verdier som kan sendes inn i modulen?

Oppsummering: Lage gjenbrukbare moduler

Godt jobbet! Nå vet De hvordan De skriver egne Terraform-moduler.

  • Moduler er mapper som inneholder .tf-filer.
  • Bruk variables.tf for inndata.
  • Plasser ressursdefinisjoner i main.tf.
  • Definer utdata i outputs.tf for å eksponere data.

Denne ferdigheten er avgjørende for å bygge skalerbar, vedlikeholdbar og konsekvent infrastruktur som kode.

Gratis å komme i gang

Lær deg Terraform som Infrastructure as Code med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Oppretting av gjenbrukbare moduler» gratis?

Ja – hele teksten i «Oppretting av gjenbrukbare moduler» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Terraform som Infrastructure as Code-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Terraform som Infrastructure as Code inneholder totalt 4 leksjoner.

Hva lærer jeg i «Oppretting av gjenbrukbare moduler»?

Lær å skrive egne Terraform-moduler ved å definere inndata, utdata og ressurser for å bygge modulære og fleksible konfigurasjoner. Du øver på Terraform som Infrastructure as Code med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Terraform som Infrastructure as Code?

Ingen tidligere erfaring er nødvendig. Terraform som Infrastructure as Code på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Oppretting av gjenbrukbare moduler»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Terraform som Infrastructure as Code-leksjonen?

Ja. Alle Terraform som Infrastructure as Code-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Terraform-moduler
  2. Oppretting av gjenbrukbare moduler
  3. Bruk av arbeidsområder for miljøer
  4. Publisering av moduler i et register
← Tilbake til Terraform som Infrastructure as Code