GitLab Runner

GitLab Runner — це додаток з відкритим вихідним кодом, який виконує завдання (такі як скрипти CI/CD) на основі визначених користувачем сценаріїв у файлі .gitlab-ci.yml. З його допомогою забезпечується автоматизація побудови, тестування та деплойменту додатків. Основні задачі включають:

  1. Автоматизацію процесу розробки: Виконання тестів, збірки, деплойменту та інших операцій.
  2. Паралельне виконання завдань: Розпаралелювання процесу, що зменшує час виконання CI/CD пайплайнів.
  3. Сумісність з різними середовищами: Виконання завдань на різних платформах, використовуючи різні екзек’ютори.

Інструкція з налаштування та запуску приватного GitLab Runner у Docker контейнері з shell екзек’ютором

Вимоги

  • Встановлений Docker.
  • Доступний GitLab сервер.
  • Токен для реєстрації Runner'а (отримується через GitLab UI).

Кроки:

  1. Завантажити Docker зображення GitLab Runner:

    docker pull gitlab/gitlab-runner:latest
    
  2. Запустити контейнер з GitLab Runner:

    docker run -d --name gitlab-runner --restart always \
      -v /srv/gitlab-runner/config:/etc/gitlab-runner \
      -v /var/run/docker.sock:/var/run/docker.sock \
      gitlab/gitlab-runner:latest
    

    Тут:

    • -d запускає контейнер у бекграунді.
    • --restart always забезпечує перезапуск контейнера у випадку його збою.
    • -v /srv/gitlab-runner/config:/etc/gitlab-runner монтує локальну директорію для конфігурації Runner.
    • -v /var/run/docker.sock:/var/run/docker.sock дозволяє контейнеру контролювати Docker хост.
  3. Реєстрація Runner'а:

    Увійдіть до контейнера:

    docker exec -it gitlab-runner bash
    

    В контейнері виконайте команду реєстрації:

    gitlab-runner register
    

    Вам буде запропоновано ввести декілька параметрів:

    • URL GitLab сервера: Введіть URL вашого GitLab інстансу, наприклад, https://gitlab.com.
    • Реєстраційний токен: Введіть токен, який можна знайти у GitLab UI під налаштуваннями проєкту або групи (Settings -> CI/CD -> Runners).
    • Опис Runner'а: Введіть описання, щоб легко ідентифікувати Runner, наприклад, My Docker Runner.
    • Теги: Введіть теги, які дозволять специфікувати Runner для певних job'ів, наприклад, docker,shell.
    • Екзек’ютор: Виберіть shell.

    В ідеалі реєстрація виглядає так:

    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    https://gitlab.example.com
    Please enter the gitlab-ci token for this runner:
    your_token
    Please enter the gitlab-ci description for this runner:
    [hostname] my-docker-runner
    Please enter the gitlab-ci tags for this runner (comma separated):
    docker,shell
    Please enter the executor: docker-ssh, docker-ssh+machine, docker, parallels, shell, ssh, virtualbox, kube, custom, docker+machine, docker-windows:
    shell
    
  4. Перевірка коректності роботи Runner'а:

    Після успішної реєстрації, у веб-інтерфейсі GitLab, на сторінці налаштувань проєкту у розділі Runners, ви повинні побачити новий Runner зі статусом "online".

  5. Налаштування для запуску задач:

    Створіть файл .gitlab-ci.yml у кореневій директорії вашого проєкту з таким вмістом:

stages:
  - build
  - test

build_job:
  stage: build
  tags:
    - shell
  script:
    - echo "Building the project..."
    - # Ваші команди для збірки проекту

test_job:
  stage: test
  tags:
    - shell
  script:
    - echo "Running tests..."
    - # Ваші команди для тестування проекту

Пояснення важливих елементів .gitlab-ci.yml:

  • stages: Список стадій пайплайну, через які проходить ваш проект.
  • build_job: Назва роботи (job), яку необхідно виконати на стадії build.
  • test_job: Назва роботи (job), яку необхідно виконати на стадії test.
  • tags: Мітки для узгодження роботи з відповідним Runner'ом.
  • script: Команди, які потрібно виконати у контексті відповідної роботи.

Запуск пайплайну

Коли ви збережете і запушите зміни з файлом .gitlab-ci.yml у репозиторій, GitLab автоматично запустить пайплайн, і GitLab Runner виконає визначені завдання.

Висновок

GitLab Runner є важливою складовою CI/CD екосистеми GitLab, що дозволяє автоматизувати процеси розробки, тестування та деплойменту. Використання Docker-контейнерів для запуску GitLab Runner забезпечує гнучкість, ізольованість та легкість в налаштуванні. Сподіваюсь, що ця лекція допоможе вам налаштувати та використовувати своє приватне CI/CD середовище ефективно.

results matching ""

    No results matching ""