Appearance
Сервер 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
Проверить статус всех служб:
bashsudo gitlab-ctl statusПерезапустить GitLab:
bashsudo gitlab-ctl restartПерезапустить отдельный сервис (например, PostgreSQL):
bashsudo gitlab-ctl restart postgresqlПросмотреть логи:
bashsudo 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/backupsCI/CD в GitLab: автоматическое обновление проектов
В проекте настроен CI/CD-процесс в GitLab для автоматического обновления серверных компонентов при изменениях в ветке master.
🎯 Цель
CI/CD обеспечивает автоматический деплой изменений для следующих типов проектов:
adminbackendkeeper
Автоматизация позволяет исключить ручной деплой и ускорить выкатывание обновлений после проверки и слияния изменений в master.
⚙️ Условия запуска
Пайплайн запускается только при пуше в ветку master, если проект содержит один из следующих тегов:
adminbackendkeeper