Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux Администрация

Как установить 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 reconfigure

GitLab автоматически получит и установит ваш 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.