Установка агента GitFlic Runner типом shell
Посмотрите в таблице совместимости нужную вам версию агента и скачайте её со страницы релизов runner. Последняя версия runner доступна по ссылке.
- Для агентов версии 1.7.1 и ниже выбор рабочей директории недоступен.
- Рабочей директорией для агента, является директория gitflic-runner в корне домашней директории пользователя, который запускает агент.
- Для работы агента, рекомендуется создать отдельного пользователя в системе, который будет осуществлять запуск агента.
Установка зависимостей
-
Установите 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
-
Установите git
sudo apt update && sudo apt install git -y
Установка агента
-
Создайте временную директорию и распакуйте в нее архив с дистрибутивом runner.
sudo mkdir /tmp/gitflic-runner sudo unzip runner_*.zip -d /tmp/gitflic-runner
-
Создайте рабочую директорию для агента
sudo mkdir /opt/gitflic-runner
-
Создайте дополнительные директории необходимые для работы
sudo mkdir /opt/gitflic-runner/build sudo mkdir /opt/gitflic-runner/cache sudo mkdir /opt/gitflic-runner/log
-
Создайте пользователя gitflic-agent
sudo useradd --home-dir /opt/gitflic-runner --system --shell /bin/sh gitflic-agent
-
Переместите или скопируйте файлы runner.jar, helper.jar, helper.sh в директорию /opt/gitflic-runner
sudo cp /tmp/gitflic-runner/runner.jar /tmp/gitflic-runner/helper.jar /tmp/gitflic-runner/shell-scripts/helper.sh /opt/gitflic-runner
helper.jar - вспомогательный файл для работы агента в режиме shell/powershell. Он необходим для работы агентов до непосредственного выполнения задачи (скачивание артефактов, подготовка кэша и прочее), и после ее выполнения (скачивание и загрузка артефактов на GitFlic, загрузка отчетов sast/dast/sca/unit-test, создание кэша и прочее).
-
Установите бит исполнения для скрипта helper.sh
sudo chmod +x /opt/gitflic-runner/helper.sh
helper.sh - shell скрипт, через который происходит вызов helper.jar с различным набором параметров. Агент CI/CD в своей работе вызывает helper.jar через helper.sh.
Без файлов helper.jar, helper.sh агент не сможет корректно выполнять задачи, связанные с CI/CD.
Регистрация агента
-
Перейдите в веб интерфейс приложения
GitFlic -> Панель администратора -> СI/CD
http(s)://<Адрес веб интерфейса>/admin/runners
Настройки компании -> Агенты 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 скопированный в п.3 --registration-token \<token> или --token \<token> да Token скопированный в п.1 --name \<name> нет Название агента --tags \<tags> нет Теги агента (через запятую) * При успешном завершении регистрации в веб интерфейсе приложения на вкладке из п.1 появится соответствующая запись о том, что агент подключен к приложению. * В рабочей директории будет создана директория config содержащая файл application.properties.
-
Добавьте необходимые параметры для запуска в файл config/application.properties.
runner.executor=shell runner.workingDir=/opt/gitflic-runner runner.helperDir=/opt/gitflic-runner logging.file.name=/opt/gitflic-runner/log/server.log logging.level.root=INFO
*При необходимости добавьте дополнительные параметры в файл application.properties созданный в п.4. С описанием параметров можно ознакомиться на данной странице.
-
Установите владельца директорий пользователя gitflic-agent
sudo chown -R gitflic-agent:gitflic-agent /opt/gitflic-runner
Запуск агента
Выполните команду запуска
``` 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