Как настроить два GitLab CI Runner на одном сервере?

Как настроить GitLab Runner для деплоя двух проектов: фронтенда и бэкенда, имеющих собственные репозитории, docker-compose.yml и .gitlab-ci.yml, на одном сервере?
  • 20 января 2024 г. 1:38
Ответы на вопрос 2
Для настройки двух GitLab CI Runner на одном сервере для деплоя двух проектов с фронтендом и бэкендом, выполните следующие шаги:

### 1. Установка GitLab Runner

Если GitLab Runner ещё не установлен, выполните его установку на вашем сервере согласно инструкции для вашей операционной системы на официальном сайте GitLab: https://docs.gitlab.com/runner/install/

### 2. Регистрация первого Runner

Зарегистрируйте Runner для одного из проектов (например, для бэкенда):

```bash
gitlab-runner register
```

Вам будет предложено ввести:
- URL вашего GitLab сервера
- Регистрационный токен для репозитория проекта (бэкенд). Токен можно найти в настройках CI/CD репозитория в GitLab
- Описание для Runner
- Теги для Runner (опционально)
- Тип Executor (например: shell, docker)

После успешной регистрации Runner появится в разделе Runner в настройках CI/CD вашего GitLab репозитория (бэкенд).

### 3. Регистрация второго Runner

Повторите процедуру регистрации для фронтенд-репозитория:

```bash
gitlab-runner register
```

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

### 4. Конфигурация Runner

Каждый зарегистрированный Runner создаёт отдельный конфигурационный файл `/etc/gitlab-runner/config.toml`. Вы можете настроить их в соответствии с потребностями проекта, например, указать разные исполнители (executors) или докер-образы.

### 5. Использование Runner в проектах

В файлах `.gitlab-ci.yml` для каждого проекта (фронтенд и бэкенд) можно использовать теги, которые были заданы при регистрации Runner, чтобы обеспечить, что задачи будут выполнены на правильном Runner:

```yaml
stages:
  - build
  - deploy

build_job:
  stage: build
  tags:
    - backend # Замените на тег, который вы использовали для бэкенд-проекта
  script:
    - echo "Building backend..."

deploy_job:
  stage: deploy
  tags:
    - backend
  script:
    - echo "Deploying backend..."
```

### 6. Проверка состояния Runner

Проверьте состояние ваших Runner, чтобы убедиться, что они работают корректно:

```bash
gitlab-runner list
```

### 7. Настройка проектов для CI/CD

В директориях ваших проектов поместите соответствующие конфигурации `docker-compose.yml` и задачи для файлов `.gitlab-ci.yml`, чтобы развернуть приложения.

### 8. Запуск и мониторинг CI/CD

Запустите pipeline в GitLab для каждого проекта. Проверьте логи выполнения задач CI/CD и убедитесь, что оба Runner работают и выполняют задачи как предполагается.

Теперь у вас должно быть два настроенных и работающих Runner на одном сервере, каждый из которых может быть использован для деплоя фронтенда и бэкенда
Рекомендую заглянуть в config.toml раннера и почитать доки . 
Всего этого при наличии ресурсов достаточно чтобы сделать и 2 и 10 и даже разных раннеров на одной машине.
Похожие вопросы