Ansible: автоматизация IT без агентов и лишней сложности

«Если SSH работает — Ansible работает.» Именно этот принцип сделал инструмент стандартом де-факто для тысяч DevOps-команд по всему миру.

Что такое Ansible и для кого он предназначен

Ansible — open-source движок IT-автоматизации, охватывающий управление конфигурациями, деплой приложений, оркестрацию и провижининг. Создал его Майкл ДеХаан в 2012 году в Red Hat. В 2015 году Red Hat приобрела Ansible примерно за $150 млн, а в 2019 году IBM купила Red Hat, включив Ansible в экосистему IBM.

Несмотря на смену владельцев, open-source проект сохранил самостоятельность и набрал свыше 60 000 звёзд на GitHub с тысячами контрибьюторов.

Ansible подойдёт:

  • DevOps-инженерам и SRE — для автоматизации деплоя и управления конфигурациями;
  • Системным администраторам — для массового управления серверами без установки агентов;
  • Сетевым инженерам — для автоматизации сетевых устройств по SSH;
  • Облачным командам — для провижининга в AWS, GCP, Azure;
  • Предприятиям — через коммерческую платформу Red Hat Ansible Automation Platform.
ℹ Философия проекта
Ключевая идея Ansible — радикальная простота. Там, где Chef требует знания Ruby и клиент-серверной архитектуры, а Puppet — собственного DSL и установки агентов, Ansible использует YAML-файлы, выполняемые по SSH. Мастер-сервер не нужен.

Ключевые возможности

1. Agentless-архитектура

В отличие от других систем управления конфигурациями, Ansible не требует установки агентов на целевых хостах. Agentless-модель экономит часы каждый месяц: не нужно устанавливать агент при провижининге, координировать обновления агентов или отлаживать их падения в 2 ночи. По оценке одной из команд, это сберегло 15 часов в месяц по сравнению с Puppet.

2. YAML-плейбуки — читаемый «почти-английский» синтаксис

Автоматизация на основе YAML-плейбуков делает задачи читаемыми и простыми в исполнении. Пример плейбука для установки и запуска Nginx:

---
- name: Установить и запустить Nginx
  hosts: webservers
  become: true

  tasks:
    - name: Установить Nginx
      ansible.builtin.apt:
        name: nginx
        state: present
        update_cache: true

    - name: Запустить и включить Nginx
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true

3. Широкий охват платформ

Ansible интегрируется с огромным количеством платформ: Linux, Windows, облачные провайдеры и сетевые устройства. Платформа интегрируется с Jenkins, Amazon EC2, Bitbucket, GitLab, Slack, CyberArk, Google Cloud, Microsoft Azure, Splunk и другими инструментами.

4. Роли, коллекции и Ansible Galaxy

Ansible — гибкая система автоматизации: управление конфигурациями, деплой приложений, облачный провижининг, ad-hoc-выполнение задач, сетевая автоматизация и мульти-узловая оркестрация. Коллекции на Ansible Galaxy позволяют не писать всё с нуля — тысячи готовых ролей доступны для немедленного использования.

5. Ansible Tower / AWX — веб-интерфейс и RBAC

Tower (коммерческий) и AWX (open-source) добавляют веб-слой, превращая Ansible из CLI-инструмента в командную платформу. Job-шаблоны параметризируют запуски плейбуков, RBAC контролирует права доступа, расписания и уведомления завершают картину управления. REST API открывает интеграционные возможности.

6. Идемпотентность

Ansible работает в stateless-режиме: каждая задача идемпотентна и отвечает исключительно за достижение нужного состояния. При каждом запуске Ansible приводит систему к желаемому состоянию, не отслеживая предыдущие.

📝 Реальный кейс
Команда применила Ansible для экстренного патчинга 200 серверов — запустила плейбук и за считанные минуты закрыла уязвимость. Никаких предварительных установок: если SSH работает, Ansible работает.

Как это работает: схема выполнения плейбука


graph LR
    A[Ansible Control Node] -->|SSH / WinRM| B[Inventory]
    B --> C[Группа: webservers]
    B --> D[Группа: dbservers]
    C --> E[server1.example.com]
    C --> F[server2.example.com]
    D --> G[db1.example.com]
    A -->|Читает| H[Playbook YAML]
    H -->|Tasks + Roles| A
    A -->|Применяет модули| E
    A -->|Применяет модули| F
    A -->|Применяет модули| G


Тарифы и цены

Ansible — бесплатное open-source ПО для автоматизации, которое DevOps-инженеры и системные администраторы используют для автоматизации задач, деплоя приложений и управления IT-инфраструктурой.

Для тех, кому необходима помощь с безопасностью, масштабируемостью и официальной поддержкой Red Hat, существует платный вариант — Red Hat Ansible Automation Platform с функциями энтерпрайз-автоматизации и интеграциями.

ТарифСтоимость (год)УзловПоддержка
Open-Source / AWXБесплатноБез ограниченийСообщество
Basic Tower~$5 000до 10030 дней
Enterprise Tower~$10 000100+Полная + SLA
Premium Tower~$14 000100+Приоритетная + SLA

По данным G2, тариф Basic Tower стартует от $5 000 за до 100 узлов с 30 днями поддержки без SLA и ограниченными функциями. Тарифы Enterprise Tower ($10 000) и Premium Tower ($14 000) открывают полные возможности предприятия, поддержку Ansible Core и структурированные SLA с определёнными временами реагирования.

Red Hat не публикует точные цены на сайте из-за индивидуального характера коммерческих запросов. Стоимость зависит от количества управляемых узлов: чем их больше, тем выше цена.

💡 Совет по экономии
Если энтерпрайз-функции не нужны прямо сейчас, начните с бесплатного open-source Ansible + AWX на Kubernetes. Это полноценный инструмент с веб-интерфейсом без каких-либо затрат.

Плюсы и минусы

✅ Плюсы❌ Минусы
Полностью бесплатный open-sourceEnterprise-версия стоит дорого
Agentless: только SSH, ничего лишнегоAWX требует Kubernetes для развёртывания
Простой синтаксис YAMLБольшие плейбуки сложно масштабировать
Огромная экосистема модулей и коллекцийОтсутствие встроенного управления состоянием (в отличие от Terraform)
Работает с Linux, Windows, сетевыми устройствамиПроизводительность при параллельном запуске на тысячах узлов
Интеграция с CI/CD (Jenkins, GitLab, GitHub Actions)Динамические инвентори сложны для новичков
Идемпотентность — безопасен при повторных запускахТребует Python на целевых хостах

Сравнение с альтернативами

Terraform отлично справляется с провижинингом инфраструктуры. Ansible блестит в управлении конфигурациями. Puppet обеспечивает desired state в масштабе. Chef предоставляет автоматизацию на основе кода для сложных задач.

ПараметрAnsibleTerraformChef
НазначениеКонфиг. менеджмент + оркестрацияПровижининг инфраструктурыКонфиг. менеджмент
СинтаксисYAML (простой)HCL (средний)Ruby DSL (сложный)
АрхитектураAgentless (SSH)Agentless (API)Agent-based
МодельPush (процедурная)Pull (декларативная)Pull (процедурная)
Управление состоянием❌ Нет✅ State-файл✅ Convergence
Кривая обучения🟢 Низкая🟡 Средняя🔴 Высокая
Open-source✅ Да✅ Да (BSL)✅ Частично
Лучше всего дляDevOps, сетевая автоматизацияCloud provisioningDev-ориентированные команды

Для большинства IT-организаций в 2025 году выигрышная комбинация — Terraform + Ansible: Terraform для провижининга инфраструктуры (создание облачных ресурсов), Ansible — для управления конфигурациями (установка ПО, деплой приложений).

Chef имеет более крутую кривую обучения, поскольку использует DSL на Ruby, требующий знания концепций программирования.

⚠ Важно знать
Terraform в 2023 году перешёл на лицензию BUSL (не полностью open-source), что привело к форку OpenTofu. Это стоит учитывать при выборе между Ansible и Terraform для долгосрочных проектов.

Вердикт: кому подойдёт Ansible?

Ansible идеален для:

  • Команд, которые хотят начать автоматизацию быстро и без затрат — достаточно знать YAML и SSH;
  • Сетевых инженеров — agentless-подход работает с любым устройством, где есть SSH;
  • Малого и среднего бизнеса — бесплатный open-source покрывает 90% задач;
  • Предприятий — через Red Hat AAP с поддержкой, SLA и расширенными интеграциями.

Не лучший выбор, если:

  • Нужно декларативное управление состоянием облачной инфраструктуры (→ Terraform);
  • Команда уже глубоко в Ruby и нужна максимальная гибкость (→ Chef);
  • Бюджет ограничен, а масштаб — тысячи узлов с Enterprise-поддержкой.

Open-source лучше всего подходит для самостоятельной работы и небольших команд, а Red Hat Ansible Automation Platform — для предприятий, которым нужны поддержка, масштабируемость и безопасность.

Итоговый рейтинг

КритерийОценка
Простота освоения⭐⭐⭐⭐⭐
Функциональность⭐⭐⭐⭐½
Документация⭐⭐⭐⭐⭐
Масштабируемость⭐⭐⭐⭐
Соотношение цена/качество⭐⭐⭐⭐⭐
Общий рейтинг9/10
💡 С чего начать прямо сейчас
  1. Установите Ansible: pip install ansible
  2. Создайте файл инвентаря hosts.ini со своими серверами
  3. Запустите первый ad-hoc команду: ansible all -m ping -i hosts.ini
  4. Напишите первый плейбук — и процессы, занимавшие дни, займут минуты