Перейти к содержанию

Установка агента GitFlic Runner типом shell


Посмотрите в таблице совместимости нужную вам версию агента и скачайте её со страницы релизов runner. Последняя версия runner доступна по ссылке.

  • Для агентов версии 1.7.1 и ниже выбор рабочей директории недоступен.
  • Рабочей директорией для агента, является директория gitflic-runner в корне домашней директории пользователя, который запускает агент.
  • Для работы агента, рекомендуется создать отдельного пользователя в системе, который будет осуществлять запуск агента.

Установка зависимостей

  1. Установите 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
    
  2. Установите git

    sudo apt update &&  sudo apt install git -y 
    

Установка агента

  1. Создайте временную директорию и распакуйте в нее архив с дистрибутивом runner.

    sudo mkdir /tmp/gitflic-runner
    sudo unzip runner_*.zip -d /tmp/gitflic-runner
    
  2. Создайте рабочую директорию для агента

    sudo mkdir /opt/gitflic-runner
    
  3. Создайте дополнительные директории необходимые для работы

    sudo mkdir /opt/gitflic-runner/build
    sudo mkdir /opt/gitflic-runner/cache
    sudo mkdir /opt/gitflic-runner/log
    
  4. Создайте пользователя gitflic-agent

    sudo useradd --home-dir /opt/gitflic-runner --system --shell /bin/sh gitflic-agent
    
  5. Переместите или скопируйте файлы 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, создание кэша и прочее).

  6. Установите бит исполнения для скрипта 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.

Регистрация агента

  1. Перейдите в веб интерфейс приложения

    GitFlic -> Панель администратора -> СI/CD

    http(s)://<Адрес веб интерфейса>/admin/runners
    

    Настройки компании -> Агенты CI/CD*

    https://gitflic.ru/company/<company_name>/setting/cicd/runners
    
  2. Скопируйте и сохраните URL и Token

    Получение токена

  3. Перейдите в директорию с исполняемым файлом runner.jar

    sudo cd /opt/gitflic-runner
    
  4. Выполните команду регистрации

    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.

    Регистрация агента

  5. Добавьте необходимые параметры для запуска в файл 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. С описанием параметров можно ознакомиться на данной странице.

  6. Установите владельца директорий пользователя 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= - Параметр указывающий на расположение файла с настройками.

  1. Создайте файл юнита systemd

    touch /etc/systemd/system/gitflic-agent.service
    
  2. Вставьте необходимые параметры для запуска в файл /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
    
  3. Перезагрузите юниты в системе

    sudo systemctl daemon-reload
    
  4. Включите автозапуск и запустите агента

    systemctl enable gitflic-agent.service
    systemctl start gitflic-agent.service