Перейти к содержанию

Обзор развертывания 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.

  • Запуск служб:

    gitlab-ctl start
    

  • Остановка служб:

    gitlab-ctl stop
    

  • Перезапуск служб:

    gitlab-ctl restart
    

  • Переконфигурация (применение изменений в /etc/gitlab/gitlab.rb):

    gitlab-ctl reconfigure
    

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

    gitlab-ctl status
    

  • Обновление GitLab: После обновления пакета gitlab-ce через менеджер пакетов (apt upgrade gitlab-ce или yum update gitlab-ce) всегда выполняйте команду gitlab-ctl reconfigure для применения новых конфигураций.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×