Intensiv DevOps-uddannelse · Lektion

IaC med Terraform og GitHub Actions

Forstå, hvordan Terraform integreres i Deres GitHub Actions-workflows for at klargøre og administrere infrastruktur.

Lektion 1 af 411 trin

IaC med Terraform og GitHub Actions er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Infrastruktur som kode (IaC)

Velkommen! I denne lektion dykker vi ned i infrastruktur som kode (IaC). Denne tilgang betyder, at du administrerer og klargør din infrastruktur, f.eks. servere, databaser og netværk, ved hjælp af kode i stedet for manuelle processer.

Det svarer til at skrive software til din infrastruktur. Det giver mange fordele, blandt andet konsistens, gentagelighed og versionsstyring af hele din opsætning.

Mød Terraform til IaC

Et af de mest populære værktøjer til IaC er Terraform, et open source-værktøj udviklet af HashiCorp.

Terraform giver dig mulighed for at definere dine infrastrukturressourcer i konfigurationsfiler, der er lette for mennesker at læse. Derefter bruger værktøjet disse filer til at klargøre og administrere ressourcer på tværs af forskellige cloududbydere som AWS, Azure og GCP samt andre tjenester.

Terrforms HCL-syntaks

Terraform bruger sit eget deklarative sprog, der kaldes HashiCorp Configuration Language (HCL). HCL er designet, så det er let for mennesker at læse og skrive, hvilket gør dine infrastrukturdefinitioner tydelige.

Her er et lille eksempel på HCL, der definerer en AWS VPC (Virtual Private Cloud):

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my-vpc"
  }
}

Den centrale Terraform-arbejdsgang

Terraform følger en ensartet arbejdsgang i tre trin til administration af din infrastruktur:

  • terraform init: Initialiserer din arbejdsmappe og downloader de nødvendige udvidelsesmoduler til udbydere.
  • terraform plan: Genererer en udførelsesplan, der viser, hvilke ændringer Terraform vil foretage i din infrastruktur.
  • terraform apply: Udfører ændringerne fra planen og klargør eller ændrer dine ressourcer.

Automatisering med GitHub Actions

Integration af Terraform med GitHub Actions gør din IaC-strategi langt stærkere. Det giver dig mulighed for at automatisere vigtige trin i dit forløb for udrulning af infrastruktur.

Med GitHub Actions kan du:

  • Automatisk køre terraform plan ved hver pullanmodning.
  • Sikre, at infrastrukturændringer bliver gennemgået og godkendt.
  • Automatisere terraform apply til kontrollerede udrulninger.

Din Terraform-arbejdsgangsfil

En GitHub Actions-arbejdsgang til Terraform defineres i en YAML-fil i mappen .github/workflows/ i dit repository. Denne fil angiver, hvornår arbejdsgangen kører, og hvilke trin den udfører.

Her er en grundlæggende struktur for en arbejdsgang, der kan planlægge ændringer:

name: 'Terraform CI'
on: 
  pull_request:
    branches:
      - main
jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    steps:
      # Your workflow steps will go here

Opsætning af Terraform og init-trin

Før du kører Terraform-kommandoer, skal din arbejdsgang hente din kode, konfigurere Terraform CLI og initialisere arbejdsfilen.

Handlingen hashicorp/setup-terraform gør dette enkelt:

- name: Checkout Code
  uses: actions/checkout@v4

- name: Setup Terraform
  uses: hashicorp/setup-terraform@v2
  with:
    terraform_version: 1.5.x

- name: Terraform Init
  run: terraform init

Terraform Plan-trinnet

Kommandoen terraform plan er et afgørende trin i enhver IaC-arbejdsgang. Den udfører en prøvekørsel for at afgøre, hvilke handlinger der er nødvendige for at opnå den ønskede tilstand, som er defineret i dine konfigurationsfiler.

Dette trin giver dig mulighed for at gennemgå de foreslåede ændringer, før noget faktisk ændres i dit cloudmiljø.

- name: Terraform Plan
  run: terraform plan
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Hurtigt tjek: Terraform Plan

Det er afgørende at forstå de centrale kommandoer for at kunne bruge Terraform effektivt i dine automatiserede arbejdsgange.

Overvejelser om Terraform Apply

Kommandoen terraform apply er det sted, hvor de faktiske ændringer foretages – den ændrer din infrastruktur.

I automatiserede forløb er det almindelig praksis kun at udløse terraform apply efter en menneskelig gennemgang af resultatet fra plan eller kun ved sammenlægning til bestemte grene, f.eks. main eller production. Det forhindrer utilsigtede eller ikke-godkendte infrastrukturændringer.

Opsummering af IaC med Terraform og Actions

I denne lektion undersøgte vi, hvordan infrastruktur som kode (IaC) hjælper med at administrere infrastruktur ved hjælp af kode. Vi fokuserede på Terraform som det førende værktøj til IaC og lærte om dets HCL-syntaks samt den vigtige arbejdsgang med init, plan, apply.

Du så også, hvordan GitHub Actions kan automatisere trinnene terraform init og terraform plan, så dine infrastrukturudrulninger bliver sikrere, mere konsistente og fuldt integrerede i dine CI/CD-forløb.

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “IaC med Terraform og GitHub Actions” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “IaC med Terraform og GitHub Actions”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “IaC med Terraform og GitHub Actions”?

Forstå, hvordan Terraform integreres i Deres GitHub Actions-workflows for at klargøre og administrere infrastruktur. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “IaC med Terraform og GitHub Actions”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. IaC med Terraform og GitHub Actions
  2. Administration af cloudressourcer
  3. Automatisering af infrastrukturændringer
  4. Håndtering af Terraform-state og remote backends
← Tilbage til Intensiv DevOps-uddannelse