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
HCL syntaxe¶
provider “aws” { region = “eu-west-1” }
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) }
Modules¶
module “vpc” {
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.