Skip to content

Сервер GitLab

Предназначен для хранения исходного кода, обеспечения совместной командной разработки, управления задачами и CI/CD через встроенные возможности GitLab

Общая информация

GitLab установлен на базе омнибус-пакета (Omnibus GitLab) непосредственно в систему (не в контейнере). Используется стабильная сборка GitLab Community Edition

  • Версия GitLab: 18.2 (CE)
  • ОС: Debian 12
  • Ruby: 3.2.5
  • PostgreSQL: 14.15
  • Redis: 7.0.15
  • Git: 2.47.2
  • GitLab Shell: 14.40.0
  • Gitaly: 17.9.1

💡 Версии компонентов актуальные на момент написания документации

Доступ

  • Веб-интерфейс: https://gitlab.a-ceramica.ru
  • HTTP clone: https://gitlab.a-ceramica.ru/группа/проект.git
  • SSH clone: git@gitlab.a-ceramica.ru:группа/проект.git

Конфигурация

Основной конфигурационный файл GitLab Omnibus — это:

bash
/etc/gitlab/gitlab.rb

Изменения в этом файле вступают в силу только после выполнения реконфигурации:

bash
sudo gitlab-ctl reconfigure

Рекомендуется:

  • Делать бэкап gitlab.rb перед изменениями.
  • Использовать встроенные переменные GitLab для настройки URL, почты, SSH, LDAP и других параметров.

После любых правок в gitlab.rb нужно выполнить reconfigure, чтобы перегенерировались конфиги всех зависимых сервисов (Nginx, Unicorn, Redis, PostgreSQL и пр.).

Управление GitLab

GitLab установлен как монолитная система через пакет gitlab-ce, все необходимые службы (PostgreSQL, Redis, Gitaly, GitLab Workhorse и др.) работают в рамках единого дистрибутива и управляются через gitlab-ctl

  • Проверить статус всех служб:

    bash
    sudo gitlab-ctl status
  • Перезапустить GitLab:

    bash
    sudo gitlab-ctl restart
  • Перезапустить отдельный сервис (например, PostgreSQL):

    bash
    sudo gitlab-ctl restart postgresql
  • Просмотреть логи:

    bash
    sudo gitlab-ctl tail

Обновление GitLab

Поскольку установлен Omnibus-дистрибутив, обновление выполняется через APT:

bash
sudo apt update
sudo apt install gitlab-ce

После обновления также потребуется:

bash
sudo gitlab-ctl reconfigure

Бэкапы

Создание резервной копии:

bash
sudo gitlab-backup create

Восстановление:

bash
sudo gitlab-backup restore BACKUP=номер_архива

Файлы бэкапов по умолчанию хранятся в:

bash
/var/opt/gitlab/backups

CI/CD в GitLab: автоматическое обновление проектов

В проекте настроен CI/CD-процесс в GitLab для автоматического обновления серверных компонентов при изменениях в ветке master.

🎯 Цель

CI/CD обеспечивает автоматический деплой изменений для следующих типов проектов:

  • admin

  • backend

  • keeper

Автоматизация позволяет исключить ручной деплой и ускорить выкатывание обновлений после проверки и слияния изменений в master.

⚙️ Условия запуска

Пайплайн запускается только при пуше в ветку master, если проект содержит один из следующих тегов:

  • admin

  • backend

  • keeper

Внутренний ресурс компании