Обзор развертывания GitLab на сервере¶
Предварительные требования и основные условия¶
Развертывание GitLab на данном сервере требует выполнения определенных условий операционной системы и наличия необходимых привилегий. Система спроектирована для поддержки как дистрибутивов на основе Debian (Ubuntu, Debian), так и дистрибутивов на основе RHEL.
-
Операционная система: Ubuntu, Debian или дистрибутивы на основе RHEL.
-
Привилегии: Для установки пакетов, настройки служб и управления межсетевым экраном требуется доступ root или права sudo.
-
Сетевая связность: Сервер должен иметь исходящий доступ в Интернет для загрузки пакетов из репозитория GitLab и для валидации сертификатов Let's Encrypt.
-
Порты:
-
Внешний порт:
443(HTTPS) для безопасного веб-доступа. -
Внутренний порт:
8080(для внутреннего взаимодействия, если применимо). -
Настройки межсетевого экрана должны разрешать трафик на порту
443.
Полное доменное имя (FQDN) финальной панели¶
Полное доменное имя (FQDN) для доступа к экземпляру GitLab следует определенному стандарту именования на основе зоны развертывания и идентификатора сервера.
-
Зона домена:
hostkey.in -
Формат URL:
gl<ServerID>.hostkey.in -
Протокол:
https -
Пример конечного адреса:
gl123.hostkey.in
Структура файлов и каталогов¶
GitLab хранит свои конфигурационные данные, данные приложений и сертификаты в стандартных системных расположениях. Основной файл конфигурации находится в каталоге /etc/gitlab.
-
Основной файл конфигурации:
/etc/gitlab/gitlab.rb -
Репозитории пакетов:
-
Debian/Ubuntu:
/etc/apt/sources.list.d/gitlab_gitlab-ce.list -
На основе RHEL: Настраиваются через скрипт установки с
packages.gitlab.com -
Хранилище ключей GPG:
/etc/apt/keyrings/gitlab-ce.gpg(только для Debian/Ubuntu)
Процесс установки приложения¶
GitLab Community Edition (CE) устанавливается с использованием нативных менеджеров пакетов (apt или yum) после добавления официального репозитория GitLab. Установка включает ядро приложения и инициирует необходимые службы.
-
Имя пакета:
gitlab-ce -
Источник репозитория:
https://packages.gitlab.com -
Шаги установки:
-
Установите предварительные требования системы (
curl,gnupg,ca-certificates,apt-transport-httpsдля Debian;bind-utils,curlдля RHEL). -
Добавьте ключ GPG GitLab в системное хранилище ключей.
-
Добавьте список источников репозитория GitLab в конфигурацию APT или YUM.
-
Обновите кэш пакетов.
-
Установите пакет
gitlab-ce. -
Выполните команду повторной конфигурации для применения настроек.
Права доступа и безопасность¶
Скрипт развертывания изменяет системные конфигурации безопасности, чтобы гарантировать беспрепятственную работу GitLab без блокировок стандартными правилами межсетевого экрана.
-
Конфигурация межсетевого экрана:
-
На системах на основе RHEL служба
firewalldостанавливается и отключается, чтобы предотвратить блокировку трафика GitLab. -
Убедитесь, что порт
443открыт во внешнем межсетевом экране сервера. -
Начальный пароль root: Начальный пароль для пользователя root в GitLab устанавливается динамически в процессе конфигурации через параметр
gitlab_rails['initial_root_password']в главном файле конфигурации. -
Let's Encrypt: SSL-сертификаты управляются автоматически. Настройка
letsencrypt['auto_renew']включена для обеспечения автоматического продления сертификатов без ручного вмешательства.
Базы данных¶
GitLab включает в себя встроенную базу данных (PostgreSQL) как часть установки пакета gitlab-ce. База данных настраивается и инициализируется автоматически в процессе выполнения команды gitlab-ctl reconfigure.
-
Тип базы данных: PostgreSQL (встроенный)
-
Метод подключения: Внутренний сокет или подключение через localhost, управляемое службами GitLab.
-
Расположение хранения: Стандартные каталоги данных, управляемые пакетом GitLab (обычно в
/var/opt/gitlab).
Прокси-серверы¶
GitLab использует внутреннюю конфигурацию прокси для обработки HTTPS-трафика и завершения SSL-соединений. Файл конфигурации gitlab.rb задает параметр external_url для принудительного использования HTTPS.
-
Внешний URL: Настроен на
https://gl<ServerID>.hostkey.in. -
SSL/TLS: Управляется через пакет Omnibus GitLab с использованием Let's Encrypt.
-
Автопродление: Включено для SSL-сертификатов.
-
Пути:
-
Внутренний путь:
/ -
Внешний путь:
/
Настройки разрешений¶
Процесс установки требует привилегий root для изменения системных файлов и настройки служб. После установки GitLab самостоятельно управляет правами доступа к своим файлам данных и конфигурации.
-
Права доступа к файлу конфигурации: Файл
/etc/gitlab/gitlab.rbпринадлежит пользователю root и доступен для записи администратору. -
Выполнение служб: Службы GitLab работают под специальными системными пользователями, созданными пакетом (например,
gitlab-psql,gitlab-shell).
Расположение файлов конфигурации и данных¶
Все критически важные файлы конфигурации и данные централизованы в каталогах установки GitLab.
| Компонент | Расположение | Описание |
|---|---|---|
| Основная конфигурация | /etc/gitlab/gitlab.rb | Основной файл конфигурации настроек GitLab. |
| Каталог данных | /var/opt/gitlab | Хранит репозитории, логи и файлы базы данных. |
| Файлы журналов | /var/log/gitlab | Содержит логи приложений и служб. |
| SSL-сертификаты | /etc/gitlab/ssl | Хранит сертификаты Let's Encrypt (управляются автоматически). |
Доступные порты для подключения¶
Сервер настроен так, чтобы открывать службы GitLab на конкретных портах для внешнего и внутреннего взаимодействия.
-
Порт 443: HTTPS (внешний доступ для пользователей).
-
Порт 8080: Внутренний порт (используется для внутреннего взаимодействия служб, если требуется).
Запуск, остановка и обновление¶
Службы GitLab управляются с помощью командной утилиты gitlab-ctl, поставляемой с пакетом Omnibus.
-
Запуск служб:
-
Остановка служб:
-
Перезапуск служб:
-
Переконфигурация (применение изменений в
/etc/gitlab/gitlab.rb): -
Проверка состояния служб:
-
Обновление GitLab: После обновления пакета
gitlab-ceчерез менеджер пакетов (apt upgrade gitlab-ceилиyum update gitlab-ce) всегда выполняйте командуgitlab-ctl reconfigureдля применения новых конфигураций.