Обзор развертывания GitLab CE на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с одной из следующих операционных систем: - Ubuntu или Debian (семейство Debian). - Red Hat, CentOS или Fedora (семейство RHEL/RPM).
Требуется наличие прав суперпользователя (root) для выполнения операций установки и конфигурации. Сервер должен иметь доступ к интернету для загрузки пакетов и ключей репозиториев.
Необходимо наличие зарегистрированного доменного имени, которое будет использоваться для доступа к приложению. В конфигурации используется шаблон домена в формате {{ prefix }}{{ server_id }}.{{ zone }}.
Структура файлов и каталогов¶
Основной файл конфигурации приложения расположен по пути /etc/gitlab/gitlab.rb.
Ключи репозитория для систем на базе Debian/Ubuntu размещаются в каталоге /etc/apt/keyrings/ с именем файла gitlab-ce.gpg.
Файл списка репозиториев для Debian/Ubuntu создается в каталоге /etc/apt/sources.list.d/ с именем gitlab_gitlab-ce.list.
Процесс установки приложения¶
Установка выполняется через официальные репозитории разработчика. Процесс различается в зависимости от семейства операционной системы.
Для систем на базе Debian и Ubuntu: 1. Устанавливаются предварительные пакеты: curl, gnupg, ca-certificates, apt-transport-https, dnsutils. 2. Добавляется ключ репозитория GitLab CE в каталог ключей APT. 3. Создается файл источника репозитория, указывающий на официальный репозиторий GitLab. 4. Обновляется кэш пакетов. 5. Устанавливается пакет gitlab-ce через менеджер пакетов apt.
Для систем на базе RHEL (Red Hat, CentOS и аналоги): 1. Устанавливаются пакеты bind-utils и curl. 2. Служба брандмауэра firewalld останавливается и отключается от автозагрузки. 3. Запускается скрипт установки репозитория от разработчика через команду curl. 4. Очищается кэш пакетов и выполняется обновление системы. 5. Устанавливается пакет gitlab-ce через менеджер пакетов yum.
Настройки конфигурации¶
После установки производится автоматическая модификация файла конфигурации /etc/gitlab/gitlab.rb. Вносятся следующие изменения:
- Параметр
external_urlустанавливается в значениеhttps://{{ prefix }}{{ server_id }}.{{ zone }}. - Параметр
gitlab_rails['initial_root_password']устанавливается в значение пароля, переданного в процессе развертывания. - Параметр
letsencrypt['auto_renew']устанавливается в значениеtrueдля автоматического обновления SSL-сертификатов.
После изменения конфигурации выполняется команда gitlab-ctl reconfigure для применения всех настроек.
Права доступа и безопасность¶
В процессе развертывания для систем на базе RHEL служба firewalld принудительно останавливается и отключается от автозагрузки.
Для систем на базе Debian/Ubuntu в процессе установки не производится явных изменений в настройках брандмауэра, однако устанавливается пакет dnsutils для работы с сетевыми запросами.
SSL-сертификаты настраиваются через встроенный механизм Let's Encrypt с включенной функцией автоматического продления.
Запуск, остановка и обновление¶
Управление сервисом осуществляется через утилиту gitlab-ctl.
Для применения изменений конфигурации и запуска всех компонентов используется команда:
Данная команда также запускает все необходимые службы приложения после установки или обновления конфигурации.