Как установить GitLab на Ubuntu: полное пошаговое руководство
GitLab — одна из самых мощных платформ DevOps с открытым исходным кодом, доступных сегодня, предлагающая полный набор инструментов, включая управление версиями на основе Git, конвейеры непрерывной интеграции/непрерывной доставки (CI/CD), отслеживание проблем и функции командного сотрудничества — всё в одном месте. Независимо от того, управляете ли вы небольшой командой разработки или запускаете проекты программного обеспечения масштаба предприятия, самостоятельное размещение GitLab на Ubuntu дает вам полный контроль над вашими данными, рабочими процессами и инфраструктурой.
Это руководство проведет вас через каждый этап установки и настройки GitLab Community Edition (CE) на сервере Ubuntu, от начальной подготовки системы до включения HTTPS и управления сервисами.
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть следующее:
- Сервер с Ubuntu 20.04 или 22.04 LTS (рекомендуется свежая установка)
- Минимум 4 GB RAM и 2 ядра CPU (GitLab рекомендует как минимум 4 ядра для использования в production)
- Доступ root или sudo к серверу
- Зарегистрированное доменное имя, указывающее на IP-адрес вашего сервера (опционально, но настоятельно рекомендуется для HTTPS)
- Порты 80 и 443 открыты в вашем брандмауэре
> Совет: Для лучшей производительности GitLab рассмотрите развертывание на плане VPS Hosting с достаточным объемом RAM и ресурсами CPU. Планы VPS AlexHost оптимизированы для рабочих нагрузок Linux и поставляются с полным доступом root, что делает их идеальной средой для самостоятельно размещаемых платформ DevOps, таких как GitLab.
Шаг 1: Обновление системных пакетов
Перед установкой любого программного обеспечения критически важно убедиться, что индекс пакетов вашей системы и установленные пакеты полностью актуальны. Это предотвращает конфликты зависимостей и гарантирует, что вы работаете с последними патчами безопасности.
sudo apt update && sudo apt upgrade -yДождитесь завершения процесса обновления перед переходом к следующему шагу.
Шаг 2: Установка необходимых зависимостей
GitLab требует несколько вспомогательных пакетов для корректной работы, включая инструменты для безопасного взаимодействия, управления часовыми поясами и написания скриптов. Установите их следующей командой:
sudo apt install -y curl openssh-server ca-certificates tzdata perlВот что делает каждый пакет:
| Пакет | Назначение |
|---|---|
curl | Загружает скрипты и файлы из веб-сети |
openssh-server | Включает доступ SSH к вашему серверу |
ca-certificates | Проверяет сертификаты SSL/TLS |
tzdata | Предоставляет данные часовых поясов |
perl | Требуется для внутренних скриптов GitLab |
Шаг 3: Добавление официального репозитория GitLab
GitLab поддерживает официальный репозиторий пакетов, который упрощает установку и будущие обновления. Используйте следующую команду для загрузки и выполнения скрипта настройки репозитория:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashЭтот скрипт автоматически:
- Определяет вашу версию Ubuntu
- Добавляет репозиторий пакетов GitLab в источники APT
- Импортирует ключ подписи GPG репозитория для проверки пакетов
После завершения скрипта ваша система готова к установке GitLab непосредственно из официального источника.
Шаг 4: Установка GitLab Community Edition
Теперь установите GitLab CE, используя менеджер пакетов apt. Вы должны установить переменную окружения EXTERNAL_URL на URL или IP-адрес, через который пользователи будут получать доступ к вашему экземпляру GitLab.
Если у вас есть доменное имя:
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ceЕсли вы используете IP-адрес (например, для локального или приватного сервера):
sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ceЗамените gitlab.yourdomain.com или YOUR_SERVER_IP на ваше фактическое доменное имя или IP-адрес.
> Примечание: Процесс установки может занять несколько минут, так как он загружает и настраивает все компоненты GitLab, включая PostgreSQL, Redis, NGINX и Sidekiq.
Во время установки GitLab будет:
- Установить все встроенные сервисы (база данных, кэш, веб-сервер и т.д.)
- Настроить себя на основе
EXTERNAL_URL, который вы предоставили - Сгенерировать начальные файлы конфигурации в
/etc/gitlab/
Шаг 5: Запуск переконфигурации GitLab
После установки запустите команду переконфигурации для завершения настройки, инициализации базы данных и запуска всех сервисов GitLab:
sudo gitlab-ctl reconfigureЭта команда читает конфигурацию из /etc/gitlab/gitlab.rb и применяет все параметры. Она также генерирует SSL-сертификаты (если настроен Let’s Encrypt), устанавливает схему базы данных и запускает все необходимые фоновые сервисы.
Вы должны увидеть длинный вывод, заканчивающийся сообщением, похожим на:
gitlab Reconfigured!Шаг 6: Доступ к GitLab в веб-браузере
После завершения переконфигурации откройте веб-браузер и перейдите на URL, который вы указали во время установки:
https://gitlab.yourdomain.comили
http://YOUR_SERVER_IPПервый вход
При первом посещении GitLab предложит вам установить пароль администратора. После его установки войдите, используя следующие учетные данные:
- Имя пользователя:
root - Пароль: Пароль, который вы только что создали
> Совет по безопасности: Измените учетные данные учетной записи root по умолчанию сразу после первого входа. Создайте личную учетную запись администратора и ограничьте учетную запись root только для экстренного использования.
Шаг 7: Настройка уведомлений по электронной почте GitLab (опционально)
Отправка уведомлений по электронной почте необходима для production-экземпляра GitLab — она включает функции, такие как проверка учетной записи, обновления запросов на слияние, оповещения CI/CD и сброс пароля. Настройте параметры SMTP в основном файле конфигурации GitLab:
sudo nano /etc/gitlab/gitlab.rbДобавьте или измените следующий блок конфигурации SMTP:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = trueСохраните файл и примените изменения:
sudo gitlab-ctl reconfigure> Ищете надежную инфраструктуру электронной почты? AlexHost предлагает профессиональные услуги Email Hosting, которые беспрепятственно интегрируются с самостоятельно размещаемыми приложениями, такими как GitLab, обеспечивая стабильный SMTP-релей с высокой доставляемостью.
Шаг 8: Включение HTTPS с Let’s Encrypt (рекомендуется)
Запуск GitLab через HTTPS настоятельно рекомендуется для любой production или командной среды. GitLab имеет встроенную поддержку Let’s Encrypt, бесплатного и автоматизированного центра сертификации.
> Важно: Let’s Encrypt требует, чтобы ваше доменное имя было общедоступным и чтобы порт 80 был открыт на вашем сервере. Это не будет работать с сырыми IP-адресами.
Откройте файл конфигурации GitLab:
sudo nano /etc/gitlab/gitlab.rbДобавьте следующую конфигурацию:
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"Сохраните файл и переконфигурируйте GitLab:
sudo gitlab-ctl reconfigureGitLab автоматически получит и установит ваш SSL-сертификат, а параметр auto_renew гарантирует его обновление перед истечением срока действия без какого-либо ручного вмешательства.
> Альтернатива: Если вы предпочитаете управлять SSL-сертификатами независимо или вам нужны сертификаты с подстановочными знаками/несколькими доменами, AlexHost предлагает ряд SSL Certificates, которые можно вручную настроить в параметрах NGINX GitLab.
Шаг 9: Управление сервисами GitLab
GitLab поставляется с собственным инструментом управления сервисами под названием gitlab-ctl. Используйте следующие команды для управления сервисами GitLab:
Запуск GitLab
sudo gitlab-ctl startОстановка GitLab
sudo gitlab-ctl stopПерезагрузка GitLab
sudo gitlab-ctl restartПроверка статуса сервиса
sudo gitlab-ctl statusПросмотр логов в реальном времени
sudo gitlab-ctl tailПросмотр логов для конкретного сервиса (например, NGINX)
sudo gitlab-ctl tail nginxЭти команды бесценны для устранения неполадок и плановой работы. Команда status отобразит состояние всех подсервисов GitLab, включая PostgreSQL, Redis, Sidekiq, Puma (веб-сервер) и NGINX.
Шаг 10: Начальная конфигурация GitLab для вашей организации
С установленным и запущенным GitLab пришло время настроить его в соответствии с потребностями вашей команды. Вот ключевые области для настройки через веб-интерфейс GitLab:
Управление пользователями
Перейдите в Admin Area → Users, чтобы создать учетные записи пользователей для членов вашей команды. Вы можете настроить методы аутентификации, включая LDAP, OAuth и SAML для корпоративного единого входа.
Группы и проекты
- Группы позволяют организовать связанные проекты и управлять разрешениями в масштабе
- Проекты — это отдельные репозитории с собственными трекерами проблем, вики и конвейерами CI/CD
