Ansible – это безагентная система автоматизации, которую устанавливают на одной машине (контрольном узле), а она управляет флотом других машин по SSH без лишних демонов. Для контрольного узла подойдёт любая Unix-подобная ОС с установленным Python (Debian, RHEL, Ubuntu, BSD и т.д.). Аналогично паровой котёл запускает маховик главного механизма, контрольный узел по SSH “запускает” выполнение команд на серверах. Управляемые узлы должны иметь SSH-доступ и Python (для запуска модулей), но сами Ansible-инструменты на них устанавливать не нужно.

Требования к системе (контрольному узлу)
- ОС: любая Linux-система (Debian, Ubuntu, CentOS/RHEL/Fedora, Arch и др.), macOS или BSD с Python 3. Ансибл требует Python 3.6+ на узле и на управляемых хостах.
- Права: обычно root или sudo, чтобы устанавливать пакеты и создавать окружения.
- Сеть: SSH-доступ к управляемым машинам и открытые порты (обычно 22).
- Версии: Ansible не дружит с Windows-контролем без WSL; на управляемых хостах достаточно Python и базовых утилит SSH/SFTP/SCP.
Установка через пакетный менеджер
Большинство дистрибутивов поставляют Ansible в стандартных репозиториях. Существует два пакета: ansible-core (минимальный) и ansible (полная версия с дополнительными модулями и коллекциями). Мы рассмотрим установку полной версии (ansible), чтобы получить “машину с набором инструментов” из коробки.
Debian/Ubuntu
В официальном репозитории Ubuntu/Debian есть Ansible, но он может быть устаревшим. Для современных версий Ansible можно добавить официальный PPA. Например, для Debian Bookworm (аналог Ubuntu 22.04 «Jammy»):
sudo apt update
sudo apt install -y software-properties-common wget gpg
sudo wget -O- "https://keyserver.ubuntu.com/pks/lookup?search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367&fingerprint=on&op=get" \
| sudo gpg --dearmor -o /usr/share/keyrings/ansible-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/ansible-archive-keyring.gpg] \
http://ppa.launchpad.net/ansible/ansible/ubuntu jammy main" \
| sudo tee /etc/apt/sources.list.d/ansible.list
sudo apt update
sudo apt install -y ansible
Эти команды добавляют Ansible PPA и устанавливают пакет ansible. Далее проверим версию:
ansible --versionЕсли всё прошло удачно, вы увидите номер версии Ansible и путь к его модулям. После установки Ansible запускает “колёсный привод” автоматизации на вашем сервере.

RHEL/CentOS/AlmaLinux/Rocky
Для RHEL-подобных систем Ansible часто поставляется через EPEL (Extra Packages for Enterprise Linux). Сначала включите репозиторий EPEL:
sudo dnf install -y epel-releaseЗатем установите Ansible:
sudo dnf install -y ansibleЭто позволит установить ansible из репозиториев EPEL (аналогично Fedora). Если вы используете Red Hat Enterprise Linux 8 с подпиской, можно вместо этого включить репозиторий Ansible Engine (например через subscription-manager) и затем выполнить dnf install ansible.

Fedora
Fedora поставляется с актуальными пакетами Ansible. Установите “полную” версию командой:
sudo dnf install -y ansible # или ansible-core для минимальной версииFedora также содержит отдельные пакеты коллекций (например, ansible-collection-community-general), но в большинстве случаев достаточно основного пакета ansible.
Arch Linux
В Arch Linux оба пакета (ansible и ansible-core) доступны в официальных репозиториях. Установите полный Ansible через pacman:
sudo pacman -Syu ansible(Опция -Syu сначала обновляет систему.) По умолчанию устанавливается ansible-core, а дополнительные коллекции можно установить отдельно. После установки выполните ansible --version.

Установка через pip / виртуальное окружение
Если в системе пакет ansible недоступен или вы хотите использовать конкретную версию, можно установить Ansible через Python-pip. Предварительно убедитесь, что установлен Python 3 и pip (python3-pip). Рекомендуется делать это в виртуальном окружении, чтобы не смешивать пакеты с системными. Пример:
python3 -m venv ~/ansible-env
source ~/ansible-env/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install ansibleПосле этого будет активирован чистый «паровой котёл» Python, и Ansible установится внутри него. Если вы не используете venv, можно установить локально для пользователя:
python3 -m pip install --user ansibleЭто создаст ansible в вашей домашней директории.
Также существует инструмент pipx для установки Python-приложений в изолированном окружении. Например:
pipx install --include-deps ansibleЭтой командой вы установите полный ansible со всеми зависимостями в отдельный изолированный контейнер .

Установка в контейнере или из исходников
Контейнеры Ansible (Execution Environments): Вместо традиционной установки можно использовать контейнеры с предустановленным Ansible (например, официальный образ ansible/ansible-runner или другие сообщества). Это похоже на запуск парового локомотива в изолированном вагоне: весь Ansible уже собран внутри контейнера, и вам не нужно управлять его зависимостями. Подробнее о «Execution Environments» см. документацию.
Сборка из исходников (dev-ветка): Если вы участвуете в разработке Ansible или хотите последнюю версию, можно клонировать репозиторий и запустить без установки:
git clone https://github.com/ansible/ansible.git
cd ansible
source ./hacking/env-setupПосле этого в вашем окружении будет доступна команда ansible напрямую из репозитория. Для разработки также установите зависимости: pip install -r requirements.txt.
Проверка работоспособности
После установки проверьте версию Ansible и путь его модулей командой:
ansible --versionВы увидите строку вида ansible [core 2.x.x] ... configured module search path .... Если команда вывела версию без ошибок, установка прошла успешно. Также проверьте, что SSH-ключи настроены: Ansible требует безпарольного SSH-доступа к управляемым узлам (например, ssh root@managed-node). При необходимости создайте ключи через ssh-keygen и скопируйте их на узлы.
Возможные проблемы и советы
- Python-путь: Убедитесь, что используется нужный интерпретатор Python. Можно проверить командой
python3 -m pip -V. Если Ansible не запускается послеpip install, возможно, нужно обновить переменную PATH или активировать виртуальное окружение. - Зависимости: Если при установке через пакетный менеджер отсутствуют пакеты (например,
sshpassна RHEL), установите их вручную (Red Hat в своём блоге отмечал зависимые пакеты:sshpass,python3-markupsafeи др. при установке ansible). - apt-key: В новых версиях Debian/Ubuntu команда
apt-key addсчитается небезопасной. Поэтому предпочтительно импортировать ключи в/usr/share/keyrings/. Мы показали вариант сgpg --dearmor. - Отладка: Используйте
ansible --versionиansible-config dumpдля проверки конфигурации. Если что-то идёт не так, обратите внимание на вывод ошибок – часто проблема в неправильной настройке SSH или отсутствующих правах.
При выполнении этих шагов вы “заведёте паровой механизм” Ansible на вашем сервере. Далее можно приступать к написанию Playbook’ов и масштабной автоматизации инфраструктуры!
⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды