Använda arbetsytor för miljöer
Utforska Terraform-arbetsytor för att hantera separata state-filer för olika miljöer (t.ex. utveckling, staging och produktion) i samma konfiguration.
Använda arbetsytor för miljöer är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad är Terraform-arbetsytor?
Terraform-arbetsytor hjälper dig att hantera flera separata tillstånd för samma Terraform-konfiguration. Se dem som separata miljöer, till exempel ”dev”, ”staging” eller ”prod”.
Det innebär att du kan använda samma uppsättning .tf-filer för att distribuera infrastruktur till olika platser utan att ändra koden, vilket främjar återanvändning och konsekvens.
Arbetsytan ”default”
När du initierar Terraform för första gången i en katalog (med terraform init) använder du automatiskt arbetsytan default.
Alla dina inledande terraform apply-åtgärder lagrar sitt tillstånd i arbetsytan default, om du inte skapar och väljer en annan arbetsyta. Den finns alltid!
Skapa nya arbetsytor
Om du vill skapa en ny miljö använder du kommandot terraform workspace new. Kommandot växlar också automatiskt den aktuella kontexten till den nyskapade arbetsytan.
Vi skapar en arbetsyta för dev:
terraform workspace new devTerraform skapar sedan ett separat tillstånd för miljön dev.
Visa tillgängliga arbetsytor
Du kan se alla tillgängliga arbetsytor i den aktuella konfigurationskatalogen med kommandot terraform workspace list.
Den aktiva arbetsytan markeras med en asterisk (*), så att du enkelt kan hålla reda på dina olika miljöer.
terraform workspace listVäxla mellan arbetsytor
Om du vill växla mellan befintliga arbetsytor använder du kommandot terraform workspace select, följt av arbetsytans namn. Kommandot ändrar den aktiva miljön.
Vi växlar tillbaka till arbetsytan default:
terraform workspace select defaultAlla efterföljande Terraform-åtgärder riktas nu mot tillståndet för miljön default.
Använda ”terraform.workspace”
Du kan göra dina konfigurationer dynamiska genom att hämta namnet på den aktuella arbetsytan med den inbyggda variabeln terraform.workspace. Det passar perfekt när du ska namnge resurser eller ange miljöspecifika taggar.
Prova att köra det här exemplet. Kör först terraform init, sedan terraform workspace new dev och slutligen terraform apply. Observera namnet på bucketen och taggarna.
provider "aws" {
region = "us-east-1" # Or your preferred region
}
resource "aws_s3_bucket" "example" {
bucket = "my-unique-bucket-${terraform.workspace}-12345"
acl = "private"
tags = {
Environment = terraform.workspace
ManagedBy = "CoddyKit"
}
}
output "bucket_name" {
description = "Name of the S3 bucket created."
value = aws_s3_bucket.example.bucket
}Isolerade tillståndsfiler
Den viktigaste egenskapen hos arbetsytor är att varje arbetsyta har en egen helt separat tillståndsfil.
Det innebär att resurser som distribueras i arbetsytan dev inte påverkar resurserna i arbetsytan prod, även om de definieras av samma konfigurationsfiler. Terraform hanterar dessa tillståndsfiler i en dold katalog (.terraform/environments) i arbetskatalogen.
Ta bort arbetsytor
När en miljö inte längre behövs kan du ta bort dess arbetsyta med terraform workspace delete <name>.
- Viktigt: Du kan inte ta bort den aktiva arbetsytan.
- Avgörande: Kontrollera alltid att du har förstört alla resurser som hör till arbetsytan med
terraform destroyinnan du tar bort den. Annars kan övergivna resurser bli kvar!
terraform workspace select default
terraform workspace delete devArbetsytor jämfört med separata kataloger
Arbetsytor passar bra för mindre variationer av samma konfiguration, men är inte alltid det bästa valet. Tänk på följande:
- Arbetsytor: Idealiska för små miljöskillnader (till exempel antal resurser och taggar) med samma grundläggande infrastrukturdesign.
- Separata kataloger: Bättre för väsentligt olika infrastrukturdesigner eller när olika team hanterar helt separata miljöer.
Välj det tillvägagångssätt som bäst passar projektets komplexitet och teamets struktur.
Kontroll av arbetsytor
Du har lärt dig om Terraform-arbetsytor. Nu testar vi dina kunskaper.
Sammanfattning: arbetsytor för miljöer
Bra jobbat! Du har utforskat Terraform-arbetsytor, en kraftfull funktion för att hantera flera miljöer från en enda konfiguration. Kom ihåg följande:
- Arbetsytor tillhandahåller isolerade tillståndsfiler för olika miljöer (till exempel dev och prod).
- Använd
terraform workspace new,listochselectför att hantera dem. - Variabeln
terraform.workspacemöjliggör dynamiska, miljöspecifika konfigurationer. - Förstör alltid resurser innan du tar bort en arbetsyta, så att övergiven infrastruktur undviks.
Det här möjliggör flexibel och välorganiserad infrastrukturdistribution!
Lär dig DevOps-bootcamp 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
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Använda arbetsytor för miljöer” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Använda arbetsytor för miljöer”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Använda arbetsytor för miljöer”?
Utforska Terraform-arbetsytor för att hantera separata state-filer för olika miljöer (t.ex. utveckling, staging och produktion) i samma konfiguration. Ni övar på DevOps-bootcamp 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 DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp 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 3 av 4.
Hur lång tid tar lektionen ”Använda arbetsytor för miljöer”?
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 DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-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