Terraform-cheatblad: nuttige commando's en voorbeelden
De lijst met alle Terraform-commando's
Hier is een uitgebreide Terraform-cheat sheet met essentiële opdrachten, configuratie-elementen, bronbeheer, modules, variabelen, state-beheer en beste praktijken.
Terraform is een open-source infrastructure-as-code (IaC)-tool ontwikkeld door HashiCorp, die gebruikers in staat stelt infrastructuur over meerdere cloudbedrijven (bijv. AWS, Azure, GCP) te definiëren en in te stellen met behulp van declaratieve configuratiebestanden. Het primaire doel is het automatiseren van infrastructuurprovisioning, het waarborgen van consistentie en het verminderen van handmatige fouten. Terraform ondersteunt multi-cloud, modulair en state-gedreven workflows, waardoor het een hoeksteen is van moderne DevOps-praktijken.
Voor meer ontwikkelaarsgereedschappen en workflows, bekijk Ontwikkelaarsgereedschappen: De complete gids voor moderne ontwikkelingsworkflows.

Belangrijke Terraform-voordelen:
- Declaratieve syntaxis: Definieer de gewenste infrastructuurtoestanden in code.
- Provider-onafhankelijk: Werkt met AWS, Azure, GCP, Kubernetes en meer.
- State-beheer: Houdt infrastructuurwijzigingen bij om conflicten te voorkomen.
Installatie en configuratiegids
https://developer.hashicorp.com/terraform/tutorials#get-started
Het Terraform-installatieproces is vrij eenvoudig.
-
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
Voor terminalproductiviteit tijdens het werken met Terraform, zie Ubuntu-toetsenbordafkortingen: Complete cheat sheet.
Verificatie
terraform --version
Terraform CLI-opdrachten
Hieronder volgt de lijst met alle Terraform-opdrachten:
| Opdracht | Beschrijving |
|---|---|
terraform init |
Initialiseer een nieuwe of bestaande Terraform-configuratiedirectory |
terraform validate |
Controleer of de configuratie geldig is |
terraform plan |
Toon uitvoeringsplan zonder wijzigingen aan te brengen |
terraform apply |
Pas de wijzigingen toe die nodig zijn om de gewenste staat te bereiken |
terraform destroy |
Vernietig door Terraform beheerde infrastructuur |
terraform fmt |
Herformateer configuratiebestanden in de standaardstijl |
terraform show |
Toon de huidige staat of plan |
terraform refresh |
Werk de staat bij met de werkelijke infrastructuur |
terraform providers |
Toon providers die in de configuratie worden gebruikt |
terraform graph |
Visualiseer bronafhankelijkheden als een grafiek |
terraform workspace list |
Lijst met alle beschikbare werkruimtes |
terraform workspace new |
Maak een nieuwe werkruimte |
terraform workspace select |
Schakel over naar een opgegeven werkruimte |
terraform workspace show |
Toon de naam van de huidige werkruimte |
terraform workspace delete |
Verwijder een opgegeven werkruimte |
terraform output |
Toon uitvoerwaarden uit het state-bestand |
terraform import |
Importeer een bestaande bron in Terraform |
terraform taint |
Markeer een bron voor herbewerking bij de volgende apply |
terraform untaint |
Markeer een bron niet meer als besmett |
terraform state list |
Lijst met bronnen in het state-bestand |
terraform state show |
Toon attributen van een enkele bron in de staat |
Configuraties essenties
Bestandsextensies
.tf: Hoofdconfiguratiebestanden (HCL-syntaxis).tfvars: Variabelewaarden
Terraform-bloktypen
- Provider-voorbeeld
provider "aws" { region = "us-east-1" } - Bron-voorbeeld
resource "aws_instance" "web" { ami = "ami-0abcdef" instance_type = "t2.micro" } - Variabele-voorbeeld
variable "instance_count" { type = number default = 2 } - Output-voorbeeld
output "instance_ip" { value = aws_instance.web.public_ip } - Module-voorbeeld
module "vpc" { source = "./modules/vpc" cidr_block = var.vpc_cidr }
Werken met variabelen
- Variabelen declareren
variable "region" { description = "AWS regio" default = "us-east-1" } - Waarden toewijzen
- CLI:
terraform apply -var="region=us-west-2" - tfvars-bestand:
terraform apply -var-file="prod.tfvars"
- CLI:
- Types:
string,number,bool,list,map,object
State-beheer
- State-bestand:
terraform.tfstate - Remote state (S3-voorbeeld)
backend "s3" { bucket = "my-tf-state" key = "state.tfstate" region = "us-east-1" } - State bekijken:
terraform show
terraform state list
Lussen en voorwaarden
- Count
resource "aws_instance" "web" { count = 3 ... } - For_each
resource "aws_s3_bucket" "b" { for_each = var.bucket_names bucket = each.value } - Voorwaarden
instance_type = var.env == "prod" ? "t2.large" : "t2.micro"
Functies
- String-interpolatie:
resource "aws_s3_bucket" "example" { bucket = "my-bucket-${var.env}" } - Lijst- en map-voorbeelden:
locals { my_map = { a = 1, b = 2 } }
Provisioners
Gebruikt voor het opstarten van bronnen. Voorbeeld:
resource "aws_instance" "web" {
...
provisioner "local-exec" {
command = "echo Instance created"
}
}
Beste praktijken
- Versiebeheer voor alle
.tf-bestanden - Provider-versies vergrendelen om consistente implementaties te waarborgen
- Remote backend voor state-beheer (S3, Azure Blob, enz.)
- State-bestanden versleutelen in remote backends
- Modulair maken van infrastructuur met behulp van herbruikbare modules
- Documenteren van uw configuraties
- Testen in staging voordat u naar productie gaat
Aanvullende referenties
- Help:
terraform --helpof[command] --helpvoor opdracht-specifieke hulp - Debuggen: Stel
TF_LOG=INFOofTF_LOG=DEBUGin voor uitgebreide logs - Opmaak:
terraform fmt - Codering: Voor Base64-coderings/decoderingsoperaties, zie Codering - decodering Base64 op Windows, Linux en Mac
Deze cheat sheet biedt een snel toegankelijke referentie voor de meest voorkomende en geavanceerde aspecten van Terraform-gebruik - van opdrachten tot beste praktijken - en maakt het praktisch voor zowel beginners als gevorderde gebruikers. Heeft u een fijne dag!
Nuttige links
- https://developer.hashicorp.com/terraform
- Docker Cheat Sheet
- Docker Compose Cheat Sheet - Meest nuttige opdrachten met voorbeelden
- Kubernetes Cheat Sheet
- Flutter-project met backend implementeren op AWS Amplify
- Hugo gegenereerde website implementeren op AWS S3
- AWS lambda-prestaties: JavaScript vs Python vs Golang
- Gelaagde Lambdas met AWS SAM en Python
- AWS SAM + AWS SQS + Python PowerTools
- Minio als Aws S3-alternatief. Minio-overzicht en installatie