Wiki
DevOps

Ansible — что это простыми словами

Ansible — SSH-based agentless конфигурационный менеджер. Playbook на YAML описывает состояние сервера. Стандарт для настройки Linux-парка без агентов.

Ansible — инструмент управления конфигурациями от Red Hat (куплен 2015). Работает через SSH: нет агента на серверах, control-нода запускает Python-модули по сети и удаляет их после исполнения. Playbook описывает желаемое состояние сервера в YAML (декларативно).

Основные концепции: (1) Inventory — список хостов (INI или YAML), (2) Playbook — набор "плей" с тасками, (3) Role — переиспользуемая единица (роль "install-postgres" применима к любому хосту), (4) Modules — atomic-действия (apt, systemd, template, copy, user). Идемпотентно: повторный запуск не сломает уже настроенный сервер.

Ansible vs Terraform: Terraform создаёт инфру (VMs, сети, LB — облачные ресурсы). Ansible настраивает внутри уже созданных VM (пакеты, конфиги, сервисы). На практике: Terraform создаёт VPS у Elistrax → Ansible накатывает nginx+Postgres+app.

Практика: control-нода — ваш ноутбук или отдельный VPS-XS €3/мес. Установка: `pipx install ansible`. Первый playbook — 10 строк. Vault (шифрование секретов) — встроен: `ansible-vault encrypt secrets.yml`.

Частые вопросы

Ansible или Puppet/Chef?
Ansible — 80 % рынка, agentless, простой YAML. Puppet/Chef требуют агентов и DSL Ruby. Выбор очевиден для новых проектов.
SSH-ключ обязателен?
Да, без пароля. Настройте `ssh-copy-id` до первого запуска playbook.

Смотрите также