Skapa återanvändbara moduler
Lär dig att skriva egna Terraform-moduler genom att definiera indata, utdata och resurser för att skapa modulära och flexibla konfigurationer.
Skapa återanvändbara moduler är en gratis lektion i Terraform som Infrastructure as Code på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Terraform som Infrastructure as Code, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Terraform som Infrastructure as Code innehåller totalt 4 lektioner.
Bygg era egna Terraform-moduler
I den föregående lektionen lärde vi oss att använda befintliga Terraform-moduler. Nu går vi vidare och skapar våra egna återanvändbara moduler!
Genom att skapa moduler kan ni kapsla in vanliga infrastrukturmönster, vilket gör konfigurationerna renare, mer konsekventa och enklare att underhålla.
Organisera modulens filer
En Terraform-modul är i grunden en samling .tf-filer som lagras i en särskild katalog.
En modulkatalog innehåller som minst:
variables.tf: Definierar modulens indatavariabler.main.tf: Innehåller de faktiska resursdeklarationerna.outputs.tf: Definierar modulens utdatavärden.
Ni kan även inkludera versions.tf för providerkrav och README.md för dokumentation.
Modulinmatning: variabler
För att göra modulen flexibel definierar ni indatavariabler. De gör det möjligt för modulens användare att anpassa dess beteende utan att ändra modulens kärnkod.
Variabler definieras med ett variable-block, där ni anger en description, en type och eventuellt ett default-värde.
Exempel: definiera en modulvariabel
Så här kan ni definiera en variabel för en instanstyp i modulens variables.tf-fil:
# variables.tf
variable "instance_type" {
description = "The EC2 instance type to use."
type = string
default = "t2.micro"
}Modulresurser: kärnlogiken
Kärnan i modulen utgörs av dess resursdeklarationer. Det är de faktiska molnresurser som modulen provisionerar.
Ni placerar dessa resursblock, till exempel en AWS EC2-instans eller en S3-bucket, i modulens main.tf-fil.
Det är viktigt att resurserna i modulen ofta använder de indatavariabler som ni har definierat.
Resursdeklaration med indata
Vi deklarerar en EC2-instans i main.tf och använder variabeln instance_type:
# main.tf
resource "aws_instance" "web_server" {
ami = "ami-0abcdef1234567890" # Example AMI ID
instance_type = var.instance_type
tags = {
Name = "MyWebServer"
}
}Modulutdata: dela information
Precis som moduler tar emot indata kan de även tillhandahålla utdatavärden. Dessa är användbara för att exportera information om resurserna som modulen skapar.
Ni kanske till exempel vill mata ut den offentliga IP-adressen för en EC2-instans eller ARN:en för en S3-bucket.
Utdata definieras i outputs.tf med hjälp av ett output-block.
Definiera ett modulutdatavärde
Så här definierar du ett utdata för den offentliga IP-adressen för vår EC2-instans 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
}Anropa den nya modulen
När modulen har definierats kan du använda den i en rotkonfiguration (eller en annan modul), precis som vilken annan modul som helst.
Du anger source (sökvägen till modulens katalog) och skickar värden till dess indatavariabler.
# 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 modulens komponenter
Du har lärt dig om de viktigaste filerna i en Terraform-modul. Vilken fil används främst för att definiera värden som kan skickas in i modulen?
Sammanfattning: skapa återanvändbara moduler
Bra jobbat! Nu vet du hur du skriver egna Terraform-moduler.
- Moduler är kataloger som innehåller
.tf-filer. - Använd
variables.tfför indata. - Placera resursdefinitioner i
main.tf. - Definiera utdata i
outputs.tfför att exponera data.
Den här färdigheten är avgörande för att bygga skalbar, underhållbar och konsekvent infrastruktur som kod.
Lär dig Terraform som Infrastructure as Code med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Skapa återanvändbara moduler” gratis?
Ja – hela texten till ”Skapa återanvändbara moduler” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Terraform som Infrastructure as Code, kan Ni uppgradera till CoddyKit PRO. Kursen i Terraform som Infrastructure as Code innehåller totalt 4 lektioner.
Vad lär jag mig i ”Skapa återanvändbara moduler”?
Lär dig att skriva egna Terraform-moduler genom att definiera indata, utdata och resurser för att skapa modulära och flexibla konfigurationer. Ni övar på Terraform som Infrastructure as Code med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Terraform som Infrastructure as Code?
Du behöver inga förkunskaper. Utbildningen i Terraform som Infrastructure as Code på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Skapa återanvändbara moduler”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Terraform som Infrastructure as Code-lektionen?
Ja. Varje Terraform som Infrastructure as Code-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till Terraform-moduler
- Skapa återanvändbara moduler
- Använda arbetsytor för miljöer
- Publicera moduler i ett registry