Настройка GitLab Runner#

1. Подготовка проекта в GitLab#

  1. Перейдите в нужный проект.

  2. Откройте меню: SettingsCI/CD.

  3. Разверните секцию Runners.

  4. Нажмите «New project runner».

  5. Укажите:

    • Tag — метка, по которой раннер будет запускаться.

    • Runner description — описание раннера.

  6. Отключите опцию Run untagged jobs.


2. Установка GitLab Runner на машине#

Выполните следующие команды:

# Скачивание бинарного файла GitLab Runner
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Выдача прав на исполнение
sudo chmod +x /usr/local/bin/gitlab-runner

# Создание системного пользователя
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

# Установка раннера как systemd-сервиса
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

# Запуск сервиса
sudo gitlab-runner start

3. Регистрация раннера#

На той же машине выполните команду регистрации (замените --token и --url на свои):

sudo gitlab-runner register --url http://gitlablocal --token glrt-t3_m2-zeUzFHMysT3QDwmsT

Во время регистрации:

  • Укажите имя раннера (можно оставить по умолчанию).

  • Выберите тип исполнителя: shell.

  • Убедитесь, что вы используете тот же tag, что указали в проекте.


4. Проверка#

Если вы запускали runner как systemd сервис (sudo gitlab-runner install && start), дополнительно запускать gitlab-runner run не требуется.

Runner автоматически стартует вместе с системой и готов выполнять пайплайны из проекта, в котором он зарегистрирован.


Пример .gitlab-ci.yml#

test-job:
  tags:
    - <your-runner-tag>
  script:
    - echo "Runner работает!"

Возможные проблемы#

Если при запуске пайплайна, он выдает такую ошибку:

Running with gitlab-runner 18.0.3 (4e717029)
  on gsf-cli-runner t3_bF2zm, system ID: s_3f8d99cb7822
Preparing the "shell" executor
00:00
Using Shell (bash) executor...
Preparing environment
00:00
Running on gsf-cli-ci...
ERROR: Job failed: prepare environment: exit status 1. Check https://docs.gitlab.com/runner/shells/#shell-profile-loading for more information

Тогда требуется:

  • в файле /home/gitlab-runner/.bash_logout закомментировать строки:

    if [ "$SHLVL" = 1 ]; then
        [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
    fi
    
  • перезапустить gitlab-runner

    sudo systemctl restart  gitlab-runner.service
    
  • перезапустить ваш пайплайн