15%

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

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

Используйте код:

Skills
Начать
31.10.2024
1 +1

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

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

Конвейеры CI/CD

15%

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

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

Используйте код:

Skills
Начать