Представь, что ты хочешь развернуть собственную платформу для управления репозиториями, CI/CD и DevOps-процессами. GitLab — это мощное решение, которое объединяет Git, трекинг задач, пайплайны и многое другое. Давай разберем, как установить GitLab на Ubuntu от А до Я.
Подготовка системы Ubuntu
Перед установкой GitLab убедимся, что система соответствует требованиям:
Обновление системы и установка зависимостей
Начнем с обновления пакетов и установки необходимых утилит:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
Установка GitLab CE на Ubuntu
Добавление официального репозитория GitLab
GitLab предоставляет удобный репозиторий для Ubuntu. Установим его:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Установка пакета GitLab CE
Теперь установим сам GitLab. Рекомендую указать домен или IP на этом этапе:
# Для установки с указанием URL
sudo EXTERNAL_URL="http://ваш-домен-или-ip" apt install gitlab-ce
# Или просто установить без немедленной настройки
sudo apt install gitlab-ce -y
Настройка GitLab после установки
Первоначальная конфигурация
После установки нужно сконфигурировать GitLab. Основной конфигурационный файл:
sudo gitlab-ctl reconfigure
Эта команда запустит настройку всех компонентов. Процесс может занять несколько минут.
Настройка внешнего URL
Если не указали URL при установке, отредактируем конфиг:
sudo nano /etc/gitlab/gitlab.rb
Найди и измени строку:
external_url 'http://ваш-домен-или-ip'
После изменения конфига снова выполни:
sudo gitlab-ctl reconfigure
Настройка SSL/HTTPS
Использование Let's Encrypt
Для production-окружения обязательно настрой HTTPS. GitLab имеет встроенную поддержку Let's Encrypt:
# В /etc/gitlab/gitlab.rb
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@ваш-домен.com']
# Убедись, что external_url использует https
external_url 'https://ваш-домен.com'
Управление GitLab сервисом
Основные команды для управления GitLab:
sudo gitlab-ctl start— запуск всех сервисовsudo gitlab-ctl stop— остановка всех сервисовsudo gitlab-ctl restart— перезапускsudo gitlab-ctl status— статус сервисовsudo gitlab-rake gitlab:check— проверка здоровья
Первоначальная настройка веб-интерфейса
После установки открой браузер и перейди по твоему URL. Тебе будет предложено:
- Установить пароль для пользователя root
- Войти с логином root и установленным паролем
- Создать новых пользователей или группы
- Настроить интеграции и CI/CD раннеры
Настройка резервного копирования
Автоматические бэкапы
Настрой автоматическое резервное копирование в конфиге:
# /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800 # 7 дней
Создание бэкапа вручную:
sudo gitlab-backup create
Оптимизация производительности
| Компонент | Рекомендация | Конфиг параметр |
|---|---|---|
| Puma (веб-сервер) | Настрой workers на основе CPU | puma['worker_processes'] |
| Sidekiq (очереди) | Увеличь количество потоков | sidekiq['max_concurrency'] |
| PostgreSQL | Настрой shared_buffers | postgresql['shared_buffers'] |
Мониторинг и логи
GitLab предоставляет встроенные инструменты мониторинга:
# Просмотр логов всех компонентов
sudo gitlab-ctl tail
# Логи только Puma
sudo gitlab-ctl tail puma
# Мониторинг в реальном времени
sudo gitlab-ctl tail -f
Частые проблемы и решения
- 502 ошибка — проверь, что Puma запущен:
sudo gitlab-ctl status puma - Медленная работа — увеличь ресурсы или оптимизируй конфиг
- Проблемы с отправкой email — настрой SMTP в конфигурации
- Диск переполнен — очисти логи и кэш:
sudo gitlab-ctl cleanse
Обновление GitLab
Процесс обновления на Ubuntu:
# Создай бэкап перед обновлением
sudo gitlab-backup create
# Обнови пакет
sudo apt update
sudo apt install gitlab-ce
# Примени изменения
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
Теперь у тебя есть полностью функционирующий GitLab на Ubuntu! Ты можешь создавать репозитории, настраивать CI/CD пайплайны и управлять всем циклом разработки из единой платформы.