Как установить 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 (опционально)
Отправка уведомлений по электронной почте необходима для производственного экземпляра 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 настоятельно рекомендуется для любого производственного или командного окружения. GitLab имеет встроенную поддержку Let’s Encrypt, бесплатного и автоматизированного центра сертификации SSL.
> Важно: 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-сертификатов, которые можно вручную настроить в параметрах 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
Конвейеры CI/CD
Встроенный CI/CD GitLab — одна из его самых мощных функций. Создайте файл .gitlab-ci.yml в корне вашего репозитория, чтобы определить автоматизированные конвейеры сборки, тестирования и развертывания.
Параметры репозитория
Настройте правила защиты ветвей, утверждения запросов на слияние и рабочие процессы проверки кода в разделе Settings → Repository каждого проекта.
Конфигурация резервного копирования
Установите автоматическое резервное копирование, настроив следующее в /etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # Keep backups for 7 daysЗапустите ручное резервное копирование в любое время с помощью:
sudo gitlab-backup createКонфигурация брандмауэра
Если на вашем сервере Ubuntu включен UFW (Uncomplicated Firewall), убедитесь, что разрешен трафик HTTP и HTTPS:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusУстранение распространенных проблем
| Проблема | Решение |
|---|---|
| GitLab недоступен после установки | Проверьте правила брандмауэра; убедитесь в EXTERNAL_URL в /etc/gitlab/gitlab.rb |
| Ошибка 502 Bad Gateway | Запустите sudo gitlab-ctl restart; проверьте логи с помощью sudo gitlab-ctl tail |
| Ошибка сертификата Let’s Encrypt | Убедитесь, что порт 80 открыт и DNS домена правильно настроен |
| Высокое использование памяти | Уменьшите рабочие процессы Puma в gitlab.rb: puma['worker_processes'] = 2 |
| Email-уведомления не отправляются | Проверьте учетные данные SMTP и запустите sudo gitlab-rails console для тестирования |
Заключение
Установка GitLab на Ubuntu — это простой процесс, который предоставляет корпоративную платформу DevOps под полным вашим контролем. Следуя этому руководству, вы настроили полностью функциональный экземпляр GitLab с шифрованием HTTPS, уведомлениями по электронной почте и надлежащим управлением сервисами — готовый к реальным рабочим процессам разработки.
Самостоятельное размещение GitLab дает вашей команде свободу настраивать рабочие процессы, сохранять суверенитет данных и интегрироваться с существующей инфраструктурой без повторяющихся расходов на подписку SaaS. Ключ к гладкому опыту работы с GitLab — начать с надежного высокопроизводительного сервера.
Для команд, которым нужна надежная основа для GitLab, Выделенные серверы AlexHost предлагают максимальную производительность и изоляцию, а планы VPS Hosting обеспечивают экономичную и масштабируемую альтернативу для небольших команд и растущих проектов. Оба варианта поставляются с полным доступом root, хранилищем SSD и круглосуточной технической поддержкой — всем необходимым для уверенного запуска GitLab.
на всех хостинговых услугах