Termux – мощный терминал для Android, предоставляющий полноценную Linux‑среду без root‑прав. Благодаря возможности установки пакетов из репозиториев apt и pkg, Termux открывает путь к автоматизации задач, привычных пользователям серверов. В этой статье мы рассмотрим, как интегрировать Ansible в Termux и использовать его для развёртывания и конфигурирования Linux‑инструментов непосредственно на Android‑устройстве.
Что потребуется
- Устройство под управлением Android 8.0+ (рекомендовано 10+).
- Установленное приложение Termux.
- Подключение к сети Интернет для загрузки пакетов.
- Базовые навыки работы в командной строке Linux.
Установка Termux и базовых пакетов
После установки Termux откройте его и выполните обновление репозиториев:
pkg update && pkg upgrade -y
Установим необходимые утилиты:
pkg install python git clang make -y
Для корректной работы Ansible понадобится openssh (для управления удалёнными хостами) и python3-pip:
pkg install openssh python-pip -y
Установка Ansible в Termux
В официальных репозиториях Termux Ansible пока отсутствует, поэтому будем использовать pip:
pip install --upgrade pip setuptools wheel
pip install ansible
Проверим успешность установки:
ansible --version
Вывод должен содержать номер версии Ansible и путь к Python‑интерпретатору внутри Termux.
Настройка SSH‑ключей
Для работы Ansible с удалёнными хостами (в том числе с самим Android) потребуется SSH‑ключ. Создадим пару ключей без пароля:
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
Добавим публичный ключ в authorized_keys (для управления локальным Termux‑окружением):
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
Запустим SSH‑демон:
sshd
Убедитесь, что порт 8022 (по умолчанию в Termux) открыт в настройках Android (разрешить входящие соединения).
Создание простого playbook
Создадим каталог проекта и пример playbook, который установит htop и ncdu в Termux:
mkdir -p ~/ansible-demo && cd ~/ansible-demo
cat > install_tools.yml <<'EOF'
- hosts: localhost
become: false
tasks:
- name: Install htop and ncdu
pkg:
name:
- htop
- ncdu
state: present
EOF
Запустим playbook:
ansible-playbook -i localhost, install_tools.yml
Обратите внимание на запятую после localhost – это способ указать инвентори‑файл «в одну строку».
Развёртывание более сложных сценариев
Для реального использования Ansible в Termux обычно создают инвентори‑файл со списком удалённых серверов (например, Raspberry Pi, облачные VM) и пишут playbook‑и, которые:
- Устанавливают необходимые пакеты (
git,docker,kubectl). - Копируют конфигурационные файлы из репозитория
git. - Настраивают системные сервисы (
systemd‑заменители в Termux, такие какsv).
Пример инвентори‑файла hosts.ini:
[raspberry]
192.168.1.42 ansible_user=pi ansible_ssh_private_key_file=~/.ssh/id_ed25519
[cloud]
34.210.12.34 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_ed25519
И соответствующий playbook setup.yml:
---
- hosts: all
become: true
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600
- name: Install Docker
apt:
name: docker.io
state: present
- name: Add current user to docker group
user:
name: "{{ ansible_user }}"
groups: docker
append: yes
Запуск:
ansible-playbook -i hosts.ini setup.yml
Оптимизация и ограничения
- Память и CPU: Android‑устройства ограничены, поэтому избегайте тяжёлых ролей, требующих компиляции больших исходников.
- systemd: В Termux нет полноценного
systemd, поэтому используйте альтернативные менеджеры процессов (sv,supervisord) или запускайте службы вручную. - Права доступа: Ansible не может выполнить
sudoвнутри Termux без root‑прав. Вместо этого используйтеpkgбезbecomeили запускайте Termux от имени пользователя с необходимыми привилегиями.
Отладка и журналирование
Для более подробного вывода используйте флаг -vvv:
ansible-playbook -i hosts.ini setup.yml -vvv
Логи Termux можно просматривать через logcat или сохранять в файл:
ansible-playbook -i hosts.ini setup.yml > ~/ansible.log 2>&1
Заключение
Интеграция Ansible с Termux открывает новые возможности автоматизации непосредственно на мобильных устройствах. Вы получаете полноценный инструмент оркестрации, который позволяет управлять как локальными Linux‑утилитами, так и удалёнными серверами из любой точки мира. При правильной настройке Ansible в Termux становится надёжным помощником для разработчиков, системных администраторов и исследователей, работающих в полевых условиях.
Если вы хотите вывести автоматизацию на профессиональный уровень, команда RybinskLab готова предложить услуги по разработке кастомных Ansible‑ролей, настройке CI/CD пайплайнов и обучению персонала. Свяжитесь с нами, чтобы ускорить внедрение DevOps‑практик в ваших проектах.