Ansible konfiguruje servery, Terraform vytváří infrastrukturu. Nejsou konkurenti — doplňují se.
Terraform¶
- Infrastructure as Code
- Deklarativní (HCL)
- Vytváří/ničí infrastrukturu (VM, DB, DNS)
- State file
- Idempotentní
Ansible¶
- Configuration Management + Orchestration
- Procedurální playbooks (YAML)
- Konfiguruje existující servery (packages, files, services)
- Agentless (SSH)
- Ad-hoc příkazy
Příklad¶
Terraform — vytvořit server¶
resource “aws_instance” “web” { ami = “ami-12345” instance_type = “t3.micro” }
Ansible — konfigurovat server¶
- hosts: web tasks:
- apt: name=nginx state=present
- service: name=nginx state=started
Kdy co¶
- Terraform — provisioning infrastruktury (VM, DB, VPC, DNS)
- Ansible — konfigurace serverů (packages, files, services)
- Oba — Terraform vytvoří VM, Ansible ji nakonfiguruje
Terraform + Ansible = kompletní IaC¶
Nejsou konkurenti. Terraform pro infra, Ansible pro konfiguraci.
ansibleterraformiacconfiguration management