Какие плюсы и минусы у Ansible?

«Какие плюсы и минусы у Ansible?» — вопрос из категории Ansible, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Агент-фри архитектура: Управление через SSH/WinRM, не требует установки и поддержки агентов на целевых хостах, что упрощает начальное внедрение.
  • Простота и читаемость: Декларативные плейбуки на YAML имеют низкий порог входа, их легко читать и понимать всей команде.
  • Идемпотентность: Повторный запуск плейбука приводит систему в желаемое состояние, а не вызывает ошибки, что безопасно для автоматизации.
  • Огромная экосистема: Коллекции и роли из Ansible Galaxy покрывают настройку практически любого ПО, что ускоряет разработку.
  • Универсальность: Один инструмент для provisioning, конфигурации, развертывания приложений и оркестрации.

Минусы:

  • Производительность на больших инфраструктурах: Последовательное выполнение задач по SSH может быть медленным для тысяч нод, хотя есть стратегии ускорения (ускоренный режим, free strategy).
  • Сложность отладки: При ошибке в большом плейбуке бывает сложно локализовать проблему, особенно при использовании динамического инвентаря и сложных шаблонов Jinja2.
  • Ограниченная поддержка сложной оркестрации: Для сценариев, требующих сложного состояния и зависимостей между нодами, инструменты вроде Terraform или специализированные оркестраторы могут быть удобнее.
  • Работа с состоянием: Ansible не хранит состояние инфраструктуры явно, в отличие от Terraform, что может усложнить отслеживание дрейфа конфигурации.