Terraform
Infrastructure-as-Code
Deklaratywne provisioning infrastruktury w HCL, multi-cloud.
Terraform to standard branżowy dla infrastruktury jako kod. Opisujesz docelowy stan zasobów (sieci, maszyny, bazy, uprawnienia) w deklaratywnym języku HCL, a Terraform wylicza różnicę między stanem zapisanym a rzeczywistym i wykonuje tylko potrzebne zmiany. Dzięki setkom providerów obejmuje praktycznie każdą chmurę i usługę SaaS z jednego, spójnego workflow.
Kiedy używać
- Zarządzasz infrastrukturą w wielu chmurach lub usługach i chcesz jednego, deklaratywnego narzędzia.
- Zależy Ci na podglądzie zmian (
plan) przed ich wprowadzeniem i na powtarzalnych środowiskach. - Budujesz reużywalne moduły współdzielone między zespołami.
Przykład użycia
terraform {
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.0" }
}
}
resource "aws_s3_bucket" "assets" {
bucket = "eiac-assets"
tags = { project = "eiac" }
}
terraform init # pobranie providerów
terraform plan # podgląd zmian
terraform apply # wprowadzenie zmian
plan pokazuje dokładnie, co zostanie utworzone/zmienione/usunięte, zanim cokolwiek dotknie infrastruktury.
Warto wiedzieć
- Stan trzymaj zdalnie (np. backend S3 + blokada), nigdy w repo.
- Po zmianie licencji na BUSL część społeczności przeszła na OpenTofu (fork MPL-2.0).
- Strukturyzuj kod w moduły i środowiska (workspaces lub osobne katalogi).