Установка 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 часто выбирают для приватных и корпоративных установок, где важен полный контроль над инфраструктурой.

Требования и подготовка
Перед установкой убедитесь в следующем:
- Сервер с 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-updatesudo dnf update -ysudo dnf -y upgradeУстановим зависимости и включим службы SSH, Postfix и chrony (NTP):
sudo dnf install -y curl openssh-server policycoreutils perlsudo systemctl enable --now sshdsudo dnf -y install postfixsudo systemctl enable --now postfixsudo dnf -y install chronysudo 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 0sudo timedatectl set-ntp yessudo 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Установка может занять время в зависимости от скорости интернета и нагрузки на сервер.

После установки Omnibus GitLab автоматически настроит сервисы и запустит веб-интерфейс.
Настройка брандмауэра
Если в системе активен firewalld, откройте нужные сервисы:
sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpsПримените правила:
sudo systemctl reload firewalldПроверьте состояния портов при необходимости командой ss -tuln.
Первый вход в веб‑интерфейс
Откройте браузер и перейдите по вашему FQDN. Появится страница входа.

Временный пароль 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для диагностики.
Альтернативные подходы к развёртыванию
- Docker / Docker Compose: быстрый тестовый разворот, но для продакшена рекомендуется Omnibus или Helm.
- Kubernetes (Helm Chart): подходит для масштабируемых инсталляций с автоматическим масштабированием.
- Установка из исходников: даёт контроль, но требует значительных усилий по поддержке.
Преимущества 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), опишите вашу инфраструктуру — я помогу подобрать оптимальный план действий.
Краткое резюме и ключевые выводы ниже.
Важно: всегда делайте резервные копии перед обновлением или изменением конфигурации.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента