Naar de hoofdinhoud gaan
  1. Blog/

Terraform voor beginners

·2 mins
Auteur
Lars van der Berg
Ik bouw snelle, veilige websites en API’s. Gevestigd in Amsterdam.

Terraform maakt het mogelijk om je hele infrastructuur als code te beheren. Geen handmatig klikken meer in een dashboard.

Installatie
#

1
2
3
4
wget https://releases.hashicorp.com/terraform/1.7.0/terraform_1.7.0_linux_amd64.zip
unzip terraform_1.7.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform version

Eerste configuratie — Hetzner Cloud
#

Maak een main.tf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
terraform {
  required_providers {
    hcloud = {
      source  = "hetznercloud/hcloud"
      version = "~> 1.45"
    }
  }
}

variable "hcloud_token" {
  sensitive = true
}

provider "hcloud" {
  token = var.hcloud_token
}

resource "hcloud_server" "web" {
  name        = "web-server"
  image       = "ubuntu-24.04"
  server_type = "cx22"
  location    = "nbg1"

  ssh_keys = [hcloud_ssh_key.default.id]
}

resource "hcloud_ssh_key" "default" {
  name       = "laptop"
  public_key = file("~/.ssh/id_ed25519.pub")
}

output "server_ip" {
  value = hcloud_server.web.ipv4_address
}

Uitvoeren
#

1
2
3
4
terraform init          # Download providers
terraform plan          # Bekijk wat er gaat veranderen
terraform apply         # Voer uit
terraform destroy       # Verwijder alles

State opslaan
#

Sla je state niet lokaal op in productie. Gebruik een remote backend:

1
2
3
4
5
6
7
8
terraform {
  backend "s3" {
    bucket   = "my-terraform-state"
    key      = "prod/terraform.tfstate"
    region   = "eu-central-1"
    encrypt  = true
  }
}

De leercurve is kort en het bespaart uren handmatig werk.