Terraform-quickguide – användbara kommandon och exempel

Listan över alla Terraform-kommandon

Sidinnehåll

Här är en omfattande Terraform-kortförlista med nödvändiga kommandon, konfigurationselement, resurshantering, moduler, variabler, tillståndshantering och bästa praxis.

Terraform är ett öppen källkod-verktyg för infrastruktur som kod (IaC) utvecklat av HashiCorp, som möjliggör att användare definierar och levererar infrastruktur över flera molnleverantörer (t.ex. AWS, Azure, GCP) med deklarativa konfigurationsfiler. Dess huvudsakliga syfte är att automatisera infrastrukturleverans, säkerställa konsistens och minska manuella fel. Terraform stöder flermoln, modulära och tillståndsstyrda arbetsflöden, vilket gör det till en hörnsten i moderna DevOps-praktiker.

För fler utvecklarverktyg och arbetsflöden, titta på Utvecklarverktyg: Den kompletta guiden till moderna utvecklingsarbetsflöden.

student using terraform

Nyckelfördelar med Terraform:

  • Deklarativ syntax: Definiera önskat infrastrukturstillstånd i kod.
  • Leverantörsoskicklighet: Fungerar med AWS, Azure, GCP, Kubernetes och mer.
  • Tillståndshantering: Spårar infrastrukturändringar för att undvika konflikter.

Installations- och inställningsguide

https://developer.hashicorp.com/terraform/tutorials#get-started

Installationsprocessen för Terraform är ganska enkel.

  • Linux (Ubuntu/Debian):

    wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install terraform
    
  • Windows (WSL):

    wget -O terraform.zip https://releases.hashicorp.com/terraform/1.5.5/terraform_1.5.5_windows_amd64.zip
    unzip terraform.zip
    
  • macOS (Homebrew):

    brew install terraform
    

För terminalproduktivitet när du arbetar med Terraform, se Ubuntu-tangentbordsgenvägar: Kompletta kortförlista.

Verifiering

terraform --version

Terraform CLI-kommandon

Här är listan över alla Terraform-kommandon:

Kommando Beskrivning
terraform init Initiera en ny eller befintlig Terraform-konfigurationskatalog
terraform validate Kontrollera om konfigurationen är giltig
terraform plan Visa exekveringsplan utan att göra ändringar
terraform apply Tillämpa ändringar som krävs för att nå önskat tillstånd
terraform destroy Ta ner infrastruktur som hanteras av Terraform
terraform fmt Formatera konfigurationsfiler i standardstil
terraform show Visa nuvarande tillstånd eller plan
terraform refresh Uppdatera tillstånd med verklig infrastruktur
terraform providers Visa leverantörer som används i konfigurationen
terraform graph Visualisera resursberoenden som en graf
terraform workspace list Lista alla tillgängliga arbetsområden
terraform workspace new Skapa ett nytt arbetsområde
terraform workspace select Byt till ett angivet arbetsområde
terraform workspace show Visa namnet på det aktuella arbetsområdet
terraform workspace delete Ta bort ett angivet arbetsområde
terraform output Visa utvärden från tillståndsfilen
terraform import Importera befintlig resurs till Terraform
terraform taint Märk en resurs för återuppsättning vid nästa tillämpning
terraform untaint Ta bort märkning av en resurs som “tainted”
terraform state list Lista resurser i tillståndsfilen
terraform state show Visa attribut för en enda resurs i tillståndet

Konfigurationselement

Filändelser

  • .tf: Huvudkonfigurationsfiler (HCL-syntax)
  • .tfvars: Variabelvärden

Terraform-blocktyper

  • Leverantörsexempel
    provider "aws" {
      region = "us-east-1"
    }
    
  • Resursexempel
    resource "aws_instance" "web" {
      ami           = "ami-0abcdef"
      instance_type = "t2.micro"
    }
    
  • Variabelexempel
    variable "instance_count" {
      type    = number
      default = 2
    }
    
  • Utvärde-exempel
    output "instance_ip" {
      value = aws_instance.web.public_ip
    }
    
  • Modulexempel
    module "vpc" {
      source = "./modules/vpc"
      cidr_block = var.vpc_cidr
    }
    

Arbeta med variabler

  • Deklarera variabler
    variable "region" {
      description = "AWS-region"
      default     = "us-east-1"
    }
    
  • Tilldela värden
    • CLI: terraform apply -var="region=us-west-2"
    • tfvars-fil: terraform apply -var-file="prod.tfvars"
  • Typer: string, number, bool, list, map, object

Hantera tillstånd

  • Tillståndsfil: terraform.tfstate
  • Fjärrtillstånd (S3-exempel)
    backend "s3" {
      bucket = "my-tf-state"
      key    = "state.tfstate"
      region = "us-east-1"
    }
    
  • Visa tillstånd:
    terraform show
    terraform state list

Loopar och villkor

  • Count
    resource "aws_instance" "web" {
      count = 3
      ...
    }
    
  • For_each
    resource "aws_s3_bucket" "b" {
      for_each = var.bucket_names
      bucket   = each.value
    }
    
  • Villkor
    instance_type = var.env == "prod" ? "t2.large" : "t2.micro"
    

Funktioner

  • Stränginterpolering:
    resource "aws_s3_bucket" "example" { bucket = "my-bucket-${var.env}" }
  • Exempel på listor och kartor:
    locals {
      my_map = { a = 1, b = 2 }
    }
    

Provisioners

Används för att bootstrapa resurser. Exempel:

resource "aws_instance" "web" {
  ...
  provisioner "local-exec" {
    command = "echo Instance created"
  }
}

Bästa praxis

  • Versionskontrollera alla .tf-filer
  • Lås leverantörsversioner för att säkerställa konsekventa leveranser
  • Fjärrbackend för tillståndshantering (S3, Azure Blob, etc.)
  • Kryptera tillståndsfilerna i fjärrbackends
  • Modulisera infrastruktur med återanvändbara moduler
  • Dokumentera dina konfigurationer
  • Testa i testmiljö innan produktion

Ytterligare referenser

  • Hjälp: terraform --help eller [kommando] --help för kommandospecifik hjälp
  • Felsökning: Sätt TF_LOG=INFO eller TF_LOG=DEBUG för utförliga loggar
  • Formatering: terraform fmt
  • Kodning: För Base64-kodning/avkodning, se Kodning - avkodning Base64 på Windows, Linux och Mac

Denna kortförlista ger en snabb referens för de vanligaste och mest avancerade aspekterna av Terraform-användning - från kommandon till bästa praxis - vilket gör den praktisk för både nybörjare och avancerade användare. Ha en bra dag!

Användbara länkar