We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Автоматизация CI/CD пайплайнов прямо в Termux: настройка GitLab Runner, Jenkins-агентов и Docker-in-Docker на ARM-устройствах

Termux – мощная среда эмуляции Linux для Android, позволяющая запускать множество инструментов разработки прямо на вашем мобильном устройстве. В этой статье мы рассмотрим, как использовать Termux для автоматизации процессов CI/CD (Continuous Integration/Continuous Delivery), настроив GitLab Runner, Jenkins-агент и Docker-in-Docker. Это позволит вам выполнять сборку, тестирование и развертывание ваших проектов, не прибегая к использованию удаленных серверов.

Подготовка окружения Termux

Первым делом необходимо установить Termux из F-Droid (рекомендуемый способ) или Google Play. После установки обновите пакеты:

pkg update && pkg upgrade

Установите необходимые пакеты:

pkg install git openssh wget curl

Убедитесь, что у вас установлена актуальная версия git.

Настройка GitLab Runner

GitLab Runner позволяет выполнять задания CI/CD, определенные в вашем репозитории GitLab. Для начала, скачаем и установим GitLab Runner:

wget https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-armv7

Сделаем файл исполняемым:

chmod +x gitlab-runner-linux-armv7

Переместим файл в /usr/local/bin для удобства:

mv gitlab-runner-linux-armv7 /usr/local/bin/gitlab-runner

Зарегистрируем Runner, используя URL и токен вашего проекта GitLab. Токен можно найти в настройках вашего проекта GitLab (Settings -> CI/CD -> Runners). Пример команды:

gitlab-runner register --url https://gitlab.com --registration-token YOUR_REGISTRATION_TOKEN --executor shell --description "Termux Runner" --tag-list termux,arm

Замените YOUR_REGISTRATION_TOKEN на ваш фактический токен. Параметр --tag-list позволяет вам определять теги для Runner, чтобы задания выполнялись только на подходящих Runner-ах.

Настройка Jenkins-агента

Jenkins – популярный сервер автоматизации. Для использования Termux в качестве Jenkins-агента потребуется установить SSH-сервер. Сначала установим openssh (если еще не установлен):

pkg install openssh

Сгенерируем ключи SSH:

ssh-keygen -t rsa -b 4096

В Jenkins на сервере добавьте новый агент, указав IP-адрес (или доменное имя) вашего устройства Termux и порт 22 (или другой, если вы изменили конфигурацию SSH). В качестве метода аутентификации используйте "Passphrase" или "Public key". Для публичного ключа используйте содержимое файла ~/.ssh/id_rsa.pub.

Для обеспечения безопасного соединения можно использовать VPN для создания локальной сети, тем самым избежать прямого открытия SSH порта в публичный доступ. Это повышает безопасность вашей инфраструктуры.

Docker-in-Docker (DinD) в Termux

Docker-in-Docker позволяет запускать Docker-контейнеры внутри Docker-контейнера. Для этого потребуется установить Docker в Termux:

pkg install docker

Запустите Docker службу:

dockerd &

Внимание! Для нормальной работы DinD может потребоваться дополнительная настройка, связанная с монтированием файловых систем и сетевыми настройками. Убедитесь, что у вас достаточно места на устройстве и что Docker может получить доступ к необходимым ресурсам.

Для использования DinD в GitLab CI/CD или Jenkins, вам потребуется настроить соответствующие параметры в ваших конфигурационных файлах (.gitlab-ci.yml или Jenkinsfile), чтобы использовать Docker Executor.

Заключение

Настройка CI/CD пайплайнов в Termux предоставляет гибкое и удобное решение для автоматизации разработки и тестирования приложений непосредственно на вашем мобильном устройстве. Это может быть особенно полезно для разработчиков, работающих в условиях ограниченного доступа к ресурсам или нуждающихся в мобильной разработке.

Если вам потребуется помощь в настройке CI/CD, оптимизации производительности или решении других задач, связанных с DevOps, обращайтесь в РыбинскЛАБ. Мы предлагаем широкий спектр услуг, включая разработку и внедрение CI/CD пайплайнов, консультации по автоматизации и оптимизации инфраструктуры. Наши эксперты помогут вам максимально эффективно использовать Termux и другие инструменты для достижения ваших целей.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект