Manuál
Kompletní průvodce Terraform
Infrastructure as Code s Terraform. Deklarativní, reproducibilní, verzovatelné.
Co je Terraform
Deklarativní nástroj pro správu infrastruktury. Napíšete co chcete, Terraform to vytvoří.
Základní workflow
terraform init # stáhne providery
terraform plan # ukáže co se změní
terraform apply # aplikuje změny
terraform destroy # smaže vše
terraform plan # ukáže co se změní
terraform apply # aplikuje změny
terraform destroy # smaže vše
HCL syntaxe
provider "aws" { region = "eu-west-1" }
resource "aws_instance" "web" {
ami = "ami-12345"
instance_type = "t3.micro"
tags = { Name = "web-server" }
}
resource "aws_instance" "web" {
ami = "ami-12345"
instance_type = "t3.micro"
tags = { Name = "web-server" }
}
State
Terraform ukládá stav infrastruktury. V týmu používejte remote state (S3 + DynamoDB lock).
terraform { backend "s3" { bucket = "tf-state" key = "prod/terraform.tfstate" region = "eu-west-1" } }
Proměnné
variable "instance_type" { default = "t3.micro" type = string }
variable "tags" { type = map(string) }
variable "tags" { type = map(string) }
Modules
module "vpc" {
source = "./modules/vpc"
cidr = "10.0.0.0/16"
}
source = "./modules/vpc"
cidr = "10.0.0.0/16"
}
Best practices
- Remote state s locking
- Malé, fokusované moduly
- terraform plan v CI/CD
- Immutable infrastructure
- Tagging convention
Tip
Nikdy neměňte infrastrukturu manuálně. Vše přes Terraform. Drift = problémy.