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.