Установка и запуск агента GitFlic Runner c типом Docker
Посмотрите в таблице совместимости нужную вам версию агента и скачайте её с страницы релизов runner. Последняя версия runner доступна по ссылке.
Установка зависимостей
-
Установите необходимую версию Docker Engine
sudo apt update && sudo apt install docker.io
1.1 Удалите все конфликтные пакеты
``` shell for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done ```
1.2 Установите apt репозиторий
``` shell # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update ```
1.3 Установите пакеты docker engine
``` shell sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ```
Воспользуйтесь официальной инструкцией по установке от команды Docker.
-
Установите java
- Проверьте доступные версии OpenJDK:
sudo apt policy openjdk-11-jdk
- Установите пакет:
sudo apt install openjdk-11-jdk
- Проверьте установленную версию:
java --version
- Скопируйте deb пакет axiom jdk на удаленный сервер
scp axiomjdk11-*.deb <username>@<ip>:~/
- Установите пакет:
sudo apt install ./axiomjdk11*.deb
- Проверьте установленную версию:
java --version
Установка агента
-
Создайте временную директорию и распакуйте в нее архив с дистрибутивом runner.
sudo mkdir /tmp/gitflic-runner sudo unzip runner_*.zip -d /tmp/gitflic-runner
-
Создайте директорию где будет находиться исполняемый файл runner,jar
sudo mkdir -p /opt/gitflic-runner
-
Скопируйте исполняемый файл runner.jar в созданную директорию
sudo cp /tmp/gitflic-runner/runner.jar /opt/gitflic-runner
-
Создайте пользователя gitflic-agent
sudo useradd --no-create-home --system --shell /sbin/nologin gitflic-agent
-
Добавьте пользователя gitflic-agent в группу docker
sudo usermod -aG docker gitflic-agent
Регистрация агента
-
Перейдите в веб интерфейс приложения
GitFlic -> Панель администратора -> СI/CD
http(s)://<Адрес веб интерфейса>/admin/runners
Регистрация агента на gitflic.ru возможна только на уровне компании
Настройки компании -> Агенты CI/CD*
https://gitflic.ru/company/<company_name>/setting/cicd/runners
-
Скопируйте и сохраните URL и Token
-
Перейдите в директорию с исполняемым файлом runner.jar
sudo cd /opt/gitflic-runner
-
Выполните команду регистрации
sudo java -jar runner.jar register --url <url> --registration-token <token>
Ключ | Обязательный | Описание |
---|---|---|
--url \<url> | Да | URL скопированный в п.1 |
--registration-token \<token> или --token \<token> | Да | Token скопированный в п.1 |
--name \<name> | Нет | Название агента |
--tags \<tags> | Нет | Теги агента (через запятую) |
--registry-url \<docker_registry_url> | Нет | URL реестра пакетов. Необходим если задача CI/CD требуют доступа к образам приватного реестра |
--registry-user \<docker_registry_user> | Нет | Пользователь, который используется для авторизации в реестре пакетов. Необходим если задача CI/CD требуют доступа к образам приватного реестра |
--registry-password \<docker_registry_password> | Нет | Транспортный токен, который используется для авторизации в реестре пакетов. Необходим если задача CI/CD требуют доступа к образам приватного реестра |
--docker-image \<image> | Нет | Образ, который будет использован для работы, если не указан любой другой в задачи или конвейере |
\* При успешном завершении регистрации в веб интерфейсе приложения на вкладке из п.1 появится соответствующая запись о том, что агент подключен к приложению.</br>
\* В рабочей директории будет создана директория **config** содержащая файл **application.properties**.</br>

-
Добавьте необходимые параметры для запуска в файл config/application.properties.
runner.executor=docker docker.didEnable=false docker.host=unix:///var/run/docker.sock docker.registry-username= #Имя пользователя для доступа к registry docker.registry-password= #Пароль пользователя для доступа к registry docker.registry-url= #URL для входа в registry logging.file.name=data/log/server.log logging.level.root=INFO
*При необходимости добавьте дополнительные параметры в файл application.properties созданный в п.4. С описанием параметров можно ознакомиться на данной странице.
-
Установите владельца директорий пользователя gitflic-agent
sudo chown -R gitflic-agent:gitflic-agent /opt/gitflic-runner
Указание пути к сокету Docker для GitFlic Runner на Windows
В случае, если GitFlic Runner с типом Docker запускается в Windows, необходимо использовать путь к сокету Docker через интерфейс npipe
:
docker.host=npipe:////./pipe/docker_engine
Warning
В связи с недоступностью Docker Hub, для корректной работы агента необходимо использование другого реестра docker образов. Чтобы подключить к агенту GitFlic Docker Registry, необходимо изменить необходимые параметры в файле config/application.properties (пункт 5) по следующей схеме:
docker.registry-username= #username пользователя на gitflic.ru
docker.registry-password= #транспортный токен пользователя на gitflic.ru
docker.registry-url=https\://registry.gitflic.ru
Info
При использовании старой версии агента (< 3.1.1), могут возникать ошибки при загрузке образа gitflic-runner-helper, обусловленные недоступностью Docker Hub. Для их исправления требуется добавить в application.properties агента следующие параметры:
runner.helperImage=registry.gitflic.ru/company/gitflic/gitflic-runner-helper:{используемая версия агента}
docker.registry-username= #username пользователя на gitflic.ru
docker.registry-password= #транспортный токен пользователя на gitflic.ru
docker.registry-url=https\://registry.gitflic.ru
Таким образом агент будет использовать GitFlic Docker Registry и корректный образ gitflic-runner-helper. Если необходимо при работе с агентом использовать другой реестр докер контейнеров, gitflic-runner-helper образ можно загрузить на машину, где запущен агент, используя параметры подключения к GitFlic Docker Registry, описанные выше. При этом в application.properties должна быть указана лишь:
runner.helperImage=registry.gitflic.ru/company/gitflic/gitflic-runner-helper:{используемая версия агента}
Запуск агента
Выполните команду запуска
``` shell
sudo -u gitflic-agent java -jar runner.jar start --config=config/application.properties
```
*--config=
- Параметр указывающий на расположение файла с настройками.
-
Создайте файл юнита systemd
touch /etc/systemd/system/gitflic-agent.service
-
Вставьте необходимые параметры для запуска в файл /etc/systemd/system/gitflic-agent.service
sudo cat <<EOF >> /etc/systemd/system/gitflic-agent.service [Unit] Description=Gitflic-runner [Service] User=gitflic-agent Group=gitflic-agent WorkingDirectory=/opt/gitflic-runner ExecStart=/usr/bin/java -jar runner.jar start --config=config/application.properties ExecStop=/bin/kill -s 15 $MAINPID StandardOutput=journal StandardError=journal Restart=on-failure RestartSec=10 TimeoutStartSec=2min [Install] WantedBy=multi-user.target EOF
/etc/systemd/system/gitflic-agent.service
[Unit] Description=Gitflic-runner [Service] User=gitflic-agent Group=gitflic-agent WorkingDirectory=/opt/gitflic-runner ExecStart=/usr/bin/java -jar runner.jar start --config=config/application.properties ExecStop=/bin/kill -s 15 $MAINPID StandardOutput=journal StandardError=journal Restart=on-failure RestartSec=10 TimeoutStartSec=2min [Install] WantedBy=multi-user.target
-
Перезагрузите юниты в системе
sudo systemctl daemon-reload
-
Включите автозапуск и запустите агента
systemctl enable gitflic-agent.service systemctl start gitflic-agent.service