Гид по технологиям

Установка GitLab на Rocky Linux 8.4 — пошаговое руководство

• 6 min read • DevOps • Обновлено 26 Nov 2025
Установка GitLab на Rocky Linux 8.4
Установка GitLab на Rocky Linux 8.4

О чём эта статья

Это подробный, понятный и расширенный гайд по установке и базовой конфигурации GitLab CE на Rocky Linux 8.4. Подойдёт для системных администраторов, DevOps-инженеров и разработчиков, которым нужно быстро развернуть самостоятельный хостинг git-репозиториев.

Кому это нужно

  • Командам, которым важен приватный хостинг кода.
  • Инженерам, желающим полный контроль над инфраструктурой и данными.
  • Тем, кто хочет использовать возможности CI/CD без облачных ограничений.

Введение

GitLab — это свободный инструмент управления git-репозиториями с веб-интерфейсом, задачами (issues), встроенным CI/CD, управлением релизами и широким набором интеграций. В отличие от GitHub, GitLab доступен как облачное решение и как полностью самостоятельно хостимая версия (CE — Community Edition). GitLab часто выбирают для приватных и корпоративных установок, где важен полный контроль над инфраструктурой.

Фоновая иллюстрация GitLab

Требования и подготовка

Перед установкой убедитесь в следующем:

  • Сервер с Rocky Linux 8.4. Можно использовать VPS у любого провайдера.
  • root‑доступ (или учетная запись с sudo) для установки пакетного ПО.
  • Полное доменное имя (FQDN), которое указывает на IP сервера (например, git.example.com). Допустим и поддомен.
  • Системные требования: минимум 2 CPU и 8 ГБ оперативной памяти по рекомендациям GitLab; для небольших инстансов 4 ГБ возможно, но ограниченно. Рекомендуется иметь не менее 15 ГБ свободного дискового пространства для установки и зависимостей.

Важно: чем больше репозиториев и CI‑задач — тем больше ресурсов потребуется (CPU, RAM, диск, I/O).

Сетевые и DNS требования

  • A-запись домена должна указывать на публичный IP сервера, если вы планируете внешний доступ.
  • Порты: 22 (SSH), 80 (HTTP) и 443 (HTTPS) — должны быть открыты для соответствующих типов доступа.

Обновление системы и установка зависимостей

Перед установкой рекомендуем обновить систему и установить нужные пакеты.

sudo dnf check-update
sudo dnf update -y
sudo dnf -y upgrade

Установим зависимости и включим службы SSH, Postfix и chrony (NTP):

sudo dnf install -y curl openssh-server policycoreutils perl
sudo systemctl enable --now sshd
sudo dnf -y install postfix
sudo systemctl enable --now postfix
sudo dnf -y install chrony
sudo systemctl enable chronyd

Установка chrony полезна для поддержания точного системного времени — важно для CI, TLS и журналирования.

Установка hostname и временной зоны

Задайте корректный hostname — по умолчанию может быть localhost, что приведёт к конфликтам в некоторых приложениях.

sudo hostnamectl set-hostname git.example.com

Список доступных временных зон:

sudo timedatectl list-timezones

Список доступных временных зон

Выберите нужную зону и примените её (пример):

sudo timedatectl set-timezone Europe/Moscow

Включите синхронизацию времени и проверьте источники chrony:

sudo timedatectl set-local-rtc 0
sudo timedatectl set-ntp yes
sudo chronyc sources

Проверить статус NTP:

timedatectl

Добавление репозитория GitLab CE

Добавим официальный репозиторий GitLab CE (Community Edition). Этот пример создаёт файл репозитория с правильными ссылками для EL8.

sudo tee /etc/yum.repos.d/gitlab_gitlab-ce.repo<

Проверим добавленный репозиторий:

sudo dnf repolist

Показ репозитория только включённых:

sudo dnf repolist enabled

Если репозиторий не включён, включите его:

sudo dnf config-manager --set-enabled gitlab_gitlab-ce

Установка GitLab CE

Теперь установим GitLab. В команде укажите ваш FQDN. В примере используется HTTP; в продакшене настоятельно рекомендовано настроить HTTPS (Let’s Encrypt или ваш CA).

sudo EXTERNAL_URL="http://gitlab.example.com" dnf install -y gitlab-ce

Установка может занять время в зависимости от скорости интернета и нагрузки на сервер.

Процесс установки GitLab на Rocky Linux 8.4

После установки Omnibus GitLab автоматически настроит сервисы и запустит веб-интерфейс.


Настройка брандмауэра

Если в системе активен firewalld, откройте нужные сервисы:

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Примените правила:

sudo systemctl reload firewalld

Проверьте состояния портов при необходимости командой ss -tuln.


Первый вход в веб‑интерфейс

Откройте браузер и перейдите по вашему FQDN. Появится страница входа.

Страница входа GitLab

Временный пароль root создаётся автоматически и хранится в файле:

sudo cat /etc/gitlab/initial_root_password

Скопируйте пароль и выполните вход под пользователем root.

Получение временного пароля из файла

После входа смените пароль в профиле: откройте Profile → Edit Profile → Password.

Изменение пароля в профиле

Редактирование пароля

Сохранение нового пароля


Ограничения регистрации пользователей

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

В меню Admin → Features → Sign up снимите флажок Sign-up enabled и сохраните изменения.

Настройки регистрации пользователей

Отключение саморегистрации

Сохранение настроек регистрации


Базовые рекомендации по безопасности

  • Настройте HTTPS: используйте Let’s Encrypt (встроенная поддержка в Omnibus) или предоставьте свой сертификат.
  • Отключите ненужные публичные функции и включите 2FA для администраторов.
  • Ограничьте доступ по IP (если возможно) для административных страниц.
  • Регулярно обновляйте GitLab и базовую систему безопасности.
  • Настройте мониторинг состояния сервисов и оповещения о проблемах.

Пример быстрой настройки Let’s Encrypt в Omnibus GitLab (требуется FQDN и открытые порты 80/443):

sudo editor /etc/gitlab/gitlab.rb

В файле установите:

external_url 'https://git.example.com'
nginx['redirect_http_to_https'] = true
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']

Затем примените конфигурацию:

sudo gitlab-ctl reconfigure

Резервное копирование и восстановление

Omnibus GitLab имеет встроенный механизм резервного копирования. Пример резервного копирования:

sudo gitlab-rake gitlab:backup:create

По умолчанию бэкап сохраняется в /var/opt/gitlab/backups; скопируйте файлы на удалённое хранилище (scp, rsync, S3 compatible).

Восстановление из конкретного бэкапа:

sudo gitlab-rake gitlab:backup:restore BACKUP=timestamp_с_файла

Важно: перед восстановлением остановите сторонние процессы, следуйте официальной инструкции, чтобы не потерять данные.


Обновление GitLab

Для обновления используйте пакетный менеджер dnf после добавления официального репозитория:

sudo dnf update -y gitlab-ce

После обновления выполните:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

Перед обновлением сделайте резервную копию и проверьте совместимость версий, особенно при переходе через большие версии.


Тестирование установки и критерии приёмки

Критерии приёмки перед передачей сервиса в эксплуатацию:

  • Веб-интерфейс доступен по HTTPS и отвечает кодом 200.
  • Успешный вход под root с новым паролем.
  • Создание нового проекта и клонирование репозитория по SSH и по HTTPS.
  • Выполнение простого pipeline (CI) для сборки «hello world».
  • Успешное создание резервной копии и её восстановление в тестовой среде.

Минимальные тестовые команды:

git clone https://git.example.com/root/test.git
ssh -T git@git.example.com
curl -I https://git.example.com

Частые проблемы и устранение неполадок

  • Проблема: «initial_root_password» отсутствует. Решение: проверьте лог установки /var/log/gitlab/ или выполните sudo grep -R "Password" /var/log/gitlab.
  • Проблема: сертификат не выпущен Let’s Encrypt. Решение: убедитесь, что порт 80 открыт и FQDN резолвится в IP.
  • Проблема: служба не запускается. Решение: sudo gitlab-ctl tail и sudo gitlab-ctl status для диагностики.

Альтернативные подходы к развёртыванию

  1. Docker / Docker Compose: быстрый тестовый разворот, но для продакшена рекомендуется Omnibus или Helm.
  2. Kubernetes (Helm Chart): подходит для масштабируемых инсталляций с автоматическим масштабированием.
  3. Установка из исходников: даёт контроль, но требует значительных усилий по поддержке.

Преимущества Omnibus пакета: простота установки, преднастроенные сервисы, быстрое восстановление. Ограничения: менее гибкая масштабируемость по сравнению с Kubernetes.


Роли и чеклисты при вводе в эксплуатацию

Администратор системы:

  • Убедиться в наличии бэкапов и плана восстановления.
  • Настроить мониторинг и alerting.
  • Поддерживать обновления OS и GitLab.

DevOps инженер:

  • Настроить CI Runner’ы (shared или specific).
  • Настроить интеграции (LDAP/AD, SSO).
  • Организовать хранение артефактов и кеша.

Безопасность:

  • Включить 2FA для администратора.
  • Настроить журналы аудита и их экспорт.
  • Ограничить саморегистрацию пользователей.

Сравнение с GitHub и когда выбирать GitLab

Когда GitLab предпочтительнее:

  • Нужен полный контроль над данными и инфраструктурой.
  • Требуется встроенный CI/CD в единой платформе.
  • Предпочтительна возможность самостоятельного хостинга (on-prem).

Когда GitHub предпочтительнее:

  • Хочется максимальной экосистемы публичных репозиториев и интеграций.
  • Выбирается облачная модель с минимальным администрированием.

Советы по масштабированию

  • Для больших нагрузок выносите PostgreSQL, Redis и Gitaly на отдельные узлы.
  • Используйте SSD для хранения репозиториев и CI-артефактов.
  • Горизонтально масштабируйте Runner’ы для обработки CI-пайплайнов.

Полезные команды управления GitLab

sudo gitlab-ctl status
sudo gitlab-ctl tail
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:backup:create
sudo gitlab-ctl restart

Локальные особенности и примечания

  • Для российских инсталляций проверьте требования по хранению персональных данных и внутренние политики компании.
  • При интеграции с корпоративной инфраструктурой рассмотрите подключение LDAP/AD и SSO для удобства управления пользователями.

Заключение

Мы прошли полный цикл: подготовка сервера, добавление репозитория GitLab CE, установка, базовая настройка брандмауэра, первый вход в веб-интерфейс, рекомендации по безопасности и резервному копированию. Это достаточная база для безопасного развёртывания GitLab в небольших и средних окружениях.

Для продвинутых конфигураций (масштабирование, HA, интеграции) рекомендуется изучить официальную документацию GitLab и подготовить тестовую среду перед применением изменений в продакшене.

Если у вас есть вопросы или требуется помощь с конкретной конфигурацией (HTTPS, кластеризация, миграция из GitHub), опишите вашу инфраструктуру — я помогу подобрать оптимальный план действий.


Краткое резюме и ключевые выводы ниже.

Важно: всегда делайте резервные копии перед обновлением или изменением конфигурации.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро