⚙️ Паровой сервер ROADIT

Установка Ansible на Linux: паровой путеводитель по автоматизации

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 и в нашем Телеграф-канале.
📋 Все команды

Оставьте комментарий