Ansible — это система управления конфигурациями, написанная на языке Python. Она использует декларативный язык YAML для описания целевых состояний системы и автоматизации задач администрирования. В отличие от Chef или Puppet, Ansible работает по модели agentless: для управления удаленными серверами не требуется установка специализированного ПО на целевые хосты, достаточно наличия SSH-доступа и интерпретатора Python.
Принцип работы
Управление осуществляется с управляющего узла (Control Node) через протоколы SSH (для Linux/Unix) или WinRM (для Windows). Ansible передает на целевые узлы небольшие программы — модули, которые выполняют конкретные действия: установку пакетов, изменение прав доступа или запуск сервисов. После выполнения задачи модули удаляются. Весь процесс описывается в playbooks — сценариях, которые гарантируют идемпотентность (повторный запуск не изменит систему, если она уже находится в нужном состоянии).
- Provisioning: Настройка серверов и облачных инстансов с нуля.
- Configuration Management: Синхронизация настроек на сотнях машин.
- Application Deployment: Автоматизация деплоя кода в пайплайнах CI/CD.
Инструмент поддерживает работу с AWS, Azure, GCP и Kubernetes. Согласно отраслевым опросам, Ansible лидирует в сегменте Infrastructure as Code (IaC) благодаря низкому порогу входа: для начала работы достаточно создать файл hosts и запустить команду ansible-playbook site.yml.