DevOps-bootcamp · leksjon

Eksterne state-backends

Konfigurer eksterne state-backends som AWS S3, Azure Blob Storage eller Google Cloud Storage for sikker, samarbeidsbasert og varig state-administrasjon.

Leksjon 1 av 411 trinn

Eksterne state-backends er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hvorfor en ekstern tilstand?

Når De bruker Terraform for første gang, lagrer programmet en tilstandsfil lokalt på maskinen Deres, vanligvis med navnet terraform.tfstate.

Denne lokale tilstanden fungerer fint for enkeltprosjekter, men blir raskt et problem når De arbeider i et team eller administrerer kompleks infrastruktur.

Forstå Terraform-tilstanden

Terraform-tilstandsfilen er en viktig komponent. Det er en JSON-fil som knytter ressurser i den virkelige infrastrukturen til Terraform-konfigurasjonen.

  • Den holder oversikt over ressurs-ID-er.
  • Den lagrer metadata om infrastrukturen.
  • Den gjør det mulig for Terraform å vite hva som finnes, og hva som må endres.

Begrensninger ved lokal tilstand

Se for Dem at flere teammedlemmer kjører terraform apply. Alle vil ha sin egen lokale tilstand, noe som kan føre til:

  • Konflikter: Endringer som gjøres av én person, gjenspeiles ikke i en annens tilstand.
  • Datatap: Hvis De mister den lokale filen, mister De oversikten over infrastrukturen.
  • Manglende samarbeid: Det blir vanskelig å dele administrasjonen av infrastrukturen.

Introduksjon til backends for ekstern tilstand

For å løse begrensningene ved lokal tilstand støtter Terraform backends for ekstern tilstand. Dette er sikre, delte plasseringer der .tfstate-filen lagres.

Vanlige backends for ekstern tilstand omfatter skylagringstjenester som AWS S3, Azure Blob Storage og Google Cloud Storage.

Fordeler med ekstern tilstand

Bruk av en ekstern backend gir flere viktige fordeler:

  • Samarbeid: Alle teammedlemmer deler én felles og autoritativ tilstand.
  • Robusthet: Tilstanden lagres i svært tilgjengelig skylagring, noe som hindrer tap.
  • Sikkerhet: Skylagring tilbyr omfattende tilgangskontroll og kryptering av tilstanden.
  • Tilstandslåsing: Hindrer flere brukere i å gjøre endringer samtidig (dette gjennomgås i neste leksjon).

Konfigurere en ekstern backend

De konfigurerer en ekstern backend ved å legge til en backend-blokk i den øverste terraform-blokken i konfigurasjonsfilen (for eksempel main.tf).

Terraform tillater bare én backend-konfigurasjon per rotmodul.

terraform {
  # backend configuration goes here
}

Eksempel på AWS S3-backend

For AWS er S3 et populært valg for ekstern tilstand. De trenger en S3-bucket og en unik nøkkel for tilstandsfilen.

Det anbefales sterkt å aktivere versjonskontroll på S3-bucket-en for å beholde en historikk over endringene i tilstanden.

terraform {
  backend "s3" {
    bucket         = "my-tf-state-bucket-12345"
    key            = "dev/my-app/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "my-tf-state-lock" # For state locking
  }
}

Azure Blob Storage-backend

I Azure kan De bruke Blob Storage til å lagre Terraform-tilstanden. De trenger en lagringskonto og en container.

Sørg for at tjenesteobjektet eller brukeren som kjører Terraform, har nødvendige tillatelser til lagringskontoen.

terraform {
  backend "azurerm" {
    resource_group_name  = "rg-terraform-state"
    storage_account_name = "tfstateblobacc001"
    container_name       = "tfstate"
    key                  = "dev/my-app/terraform.tfstate"
  }
}

Initialisere den eksterne backend-en

Etter at De har lagt til backend-blokken, må De kjøre terraform init. Denne kommandoen oppdager backend-konfigurasjonen og flytter den lokale tilstanden (hvis den finnes) til den eksterne plasseringen.

Terraform ber Dem bekrefte før flyttingen utføres.

terraform init

Kontroll av ekstern tilstand

Hvilke av de følgende er viktige fordeler ved å bruke en backend for ekstern tilstand i Terraform?

Oppsummering og neste trinn

Godt jobbet! De har lært om den avgjørende rollen backends for ekstern tilstand spiller i Terraform.

  • Ekstern tilstand sentraliserer .tfstate-filen.
  • Den muliggjør samarbeid i team, gir robusthet og styrker sikkerheten.
  • De konfigurerer den ved hjelp av en backend-blokk og aktiverer den med terraform init.

Deretter skal vi gå dypere inn i tilstandslåsing og konsistens, en viktig funksjon som aktiveres av eksterne backends!

Gratis å komme i gang

Lær deg DevOps-bootcamp 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
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «Eksterne state-backends» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Eksterne state-backends», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «Eksterne state-backends»?

Konfigurer eksterne state-backends som AWS S3, Azure Blob Storage eller Google Cloud Storage for sikker, samarbeidsbasert og varig state-administrasjon. Du øver på DevOps-bootcamp 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 DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp 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 1 av 4.

Hvor lang tid tar leksjonen «Eksterne state-backends»?

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 DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-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. Eksterne state-backends
  2. Låsing og konsistens i state
  3. Importere eksisterende ressurser
  4. Omstrukturering av tilstand med moved og removed
← Tilbake til DevOps-bootcamp