Что это
Ansible — инструмент управления конфигурациями, ориентированный на автоматизацию настройки ОС и развертывание приложений. Terraform — средство оркестрации инфраструктуры, предназначенное для создания и изменения ресурсов через API провайдеров.
| Параметр | Ansible | Terraform |
|---|---|---|
| Парадигма | Процедурная (Как делать) | Декларативная (Что получить) |
| Состояние (State) | Отсутствует (Stateless) | Хранится в tfstate (Stateful) |
| Язык | YAML | HCL (HashiCorp Configuration Language) |
| Управление | Mutable (Изменяемая инфраструктура) | Immutable (Неизменяемая инфраструктура) |
| Тип подключения | SSH / WinRM (Agentless) | API провайдеров |
Производительность
Terraform работает быстрее при создании сотен облачных ресурсов за счет параллельных вызовов API. По умолчанию параметр -parallelism равен 10, но может быть увеличен. Ansible ограничен накладными расходами на SSH-соединения. При работе с 500+ узлами время выполнения плейбуков растет линейно, если не использовать mitogen или настройки forks в ansible.cfg.
Конфигурация и сложность
Ansible использует YAML, что упрощает вход для системных администраторов. Логика строится на последовательном выполнении задач. Terraform использует HCL, который требует понимания графа зависимостей. Код Terraform описывает конечный результат, а зависимости между ресурсами (например, создание подсети перед запуском VM) вычисляются автоматически.
Когда выбрать что
- Ansible: Настройка Nginx, установка пакетов, управление пользователями, патчинг безопасности на существующих серверах.
- Terraform: Создание VPC, баз данных RDS, кластеров Kubernetes (EKS/GKE), балансировщиков нагрузки в публичных облаках.
Стоимость / лицензия
Ansible распространяется под лицензией GNU GPLv3. Terraform с августа 2023 года перешел на лицензию BSL (Business Source License) 1.1, что ограничивает его использование в коммерческих продуктах-конкурентах HashiCorp. В качестве альтернативы с открытым кодом (Apache 2.0) существует форк OpenTofu.
Экосистема и интеграции
Ansible Galaxy содержит более 30 000 готовых ролей. Основная сила — в модулях для ОС (Linux, Windows, сетевое оборудование). Terraform Registry предоставляет провайдеров для всех крупных облаков (AWS, Azure, GCP) и SaaS-сервисов (Cloudflare, Datadog). Terraform лучше интегрируется с CI/CD пайплайнами для управления жизненным циклом ресурсов.
Вердикт
Для создания инфраструктуры «с нуля» в облаке оптимален Terraform. Для глубокой настройки операционных систем и доставки кода на серверы — Ansible. В современных проектах технологии часто совмещаются: Terraform создает VM, а Ansible настраивает их через remote-exec или динамический инвентарь.