Infrastructure as Code (IaC) hat die Art und Weise, wie wir IT-Infrastruktur verwalten, grundlegend veraendert. Terraform, entwickelt von HashiCorp, ist das am weitesten verbreitete IaC-Werkzeug.
Installation
Linux (Ubuntu/Debian)
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform -y
Grundlegende Konzepte
Provider
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
Ressourcen
resource "aws_instance" "web_server" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.micro"
tags = {
Name = "webserver"
}
}
Variablen
variable "instance_type" {
description = "EC2-Instanztyp"
type = string
default = "t3.micro"
}
Der Terraform-Workflow
terraform init # Arbeitsverzeichnis initialisieren
terraform plan # Aenderungen vorschauen
terraform apply # Aenderungen anwenden
terraform destroy # Infrastruktur zerstoeren
Best Practices
- Immer
terraform planvorterraform applyausfuehren - Remote State mit Locking fuer Teamarbeit verwenden
- Module zur Organisation und Wiederverwendung nutzen
- Niemals Geheimnisse in Terraform-Dateien committen
terraform fmtfuer konsistente Formatierung verwenden
Fazit
Terraform bringt die Prinzipien der Softwareentwicklung in die Infrastrukturverwaltung. Durch die Definition Ihrer Infrastruktur als Code gewinnen Sie Reproduzierbarkeit, Zusammenarbeit und Automatisierungsfaehigkeiten.