Ansible konfiguriert Server, Terraform erstellt Infrastruktur. Sie sind keine Konkurrenten — sie ergänzen sich.
Terraform¶
- Infrastructure as Code
- Deklarativ (HCL)
- Erstellt/zerstört Infrastruktur (VM, DB, DNS)
- State File
- Idempotent
Ansible¶
- Configuration Management + Orchestrierung
- Prozedurale Playbooks (YAML)
- Konfiguriert bestehende Server (Packages, Files, Services)
- Agentless (SSH)
- Ad-hoc-Befehle
Beispiel¶
Terraform — Server erstellen¶
resource “aws_instance” “web” { ami = “ami-12345” instance_type = “t3.micro” }
Ansible — Server konfigurieren¶
- hosts: web tasks:
- apt: name=nginx state=present
- service: name=nginx state=started
Wann was verwenden¶
- Terraform — Infrastruktur-Provisioning (VM, DB, VPC, DNS)
- Ansible — Serverkonfiguration (Packages, Files, Services)
- Beide — Terraform erstellt die VM, Ansible konfiguriert sie
Terraform + Ansible = Vollständiges IaC¶
Sie sind keine Konkurrenten. Terraform für Infrastruktur, Ansible für Konfiguration.
ansibleterraformiacconfiguration management