Гид по технологиям

Установка GitLab CE на Ubuntu 16.04 — пошаговый гид

7 min read DevOps Обновлено 17 Oct 2025
Установка GitLab CE на Ubuntu 16.04
Установка GitLab CE на Ubuntu 16.04

TL;DR

Установите GitLab CE на сервер Ubuntu 16.04 с помощью Omnibus-пакета, включите HTTPS через Let’s Encrypt, настройте UFW и выполните базовую послеустановочную конфигурацию. В статье есть подробные команды, примечания по безопасности, отладочные сценарии и чек-листы для администраторов и разработчиков.

Важно: используйте собственный домен для внешнего URL и создавайте резервные копии перед изменениями в продакшн-системах.

GitLab — открытый менеджер репозиториев Git, разработанный на Rails компанией GitLab Inc. Это веб-интерфейс для совместной работы над кодом: баг-трекинг, запросы на слияние, обзоры кода, вики и CI/CD. GitLab умеет хранить множество проектов и доступен в нескольких вариантах: Community Edition (CE), Enterprise Edition (EE), облачный GitLab.com и частные managed-инстансы.

В этом руководстве показана поэтапная установка GitLab CE (Omnibus) на сервер Ubuntu 16.04 Xenial Xerus. Omnibus-пакет упрощает развёртывание, устанавливая все зависимости и службы.

Основные задачи в инструкции

  • Установка необходимых пакетов на Ubuntu
  • Добавление репозитория GitLab и установка gitlab-ce
  • Настройка внешнего URL
  • Получение SSL-сертификата Let’s Encrypt и генерация dhparam
  • Включение HTTPS в Nginx (встроенный в Omnibus)
  • Настройка UFW (брандмауэр)
  • Послеустановочная конфигурация и тестирование

Кому пригодится этот гид

Коротко: системным администраторам, инженерам DevOps и владельцам небольших команд, которые хотят развернуть собственный GitLab на Ubuntu 16.04.

Краткие требования (одно предложение): Ubuntu 16.04 x64, минимум 2 ГБ ОЗУ, root-доступ.

Список терминов (1‑строчный определения)

  • Omnibus: официальный пакет GitLab, включающий все зависимости и службы.
  • external_url: основная переменная конфигурации GitLab, определяющая URL доступа пользователям.

Подготовка сервера и предварительные замечания

Перед началом:

  • Резервная копия данных и снимок машины (snapshot) для быстрого отката.
  • Если сервер в облаке — убедитесь, что у него статический публичный IP или правильная запись DNS.
  • Укажите валидный домен (например, gitlab.example.com). Let’s Encrypt выдаёт сертификаты только для доменов, а не для чистых IP.

Примеры команд выполняются от имени root или через sudo.

Шаг 1 — установка требуемых пакетов

Подключитесь к серверу по SSH как root и обновите репозитории:

ssh root@GitLabServer
apt-get update && apt-get upgrade -y

Установите curl, OpenSSH-сервер, ca-certificates и postfix (SMTP):

apt install -y curl openssh-server ca-certificates postfix

При установке postfix выберите тип конфигурации “Internet Site” и введите FQDN сервера, который будет использоваться в качестве отправителя почты (например, gitlab.example.com).

Настройка Postfix на Ubuntu

Ввод доменного имени для Postfix

Примечание: если почтовая рассылка не нужна сразу, можно временно выбрать «local only», но для уведомлений GitLab лучше настроить SMTP.

Шаг 2 — добавление репозитория GitLab и установка

Добавьте официальный репозиторий GitLab Omnibus и выполните установку gitlab-ce:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install -y gitlab-ce

Процесс установки может занять несколько минут; Omnibus установит PostgreSQL, Redis, Nginx и другие компоненты.

Добавление репозитория GitLab

Установка GitLab CE

После установки сервисы будут запущены автоматически.

Шаг 3 — настройка внешнего URL

Основной файл конфигурации GitLab находится в /etc/gitlab/gitlab.rb. Укажите external_url с вашим доменом и протоколом (http или https).

cd /etc/gitlab
vim gitlab.rb

Найдите строку external_url и замените на ваш домен, например:

external_url 'http://gitlab.example.com'

Сохраните и закройте файл. На данный момент используем HTTP — в следующем шаге мы включим HTTPS.

Шаг 4 — получение SSL через Let’s Encrypt и генерация dhparam

Установите клиент Let’s Encrypt (certbot) и получите сертификат:

apt install -y letsencrypt
letsencrypt certonly -d gitlab.example.com

Следуйте подсказкам: укажите e-mail и согласитесь с условиями обслуживания. Файлы сертификата появятся в /etc/letsencrypt/live/gitlab.example.com/.

Генерация SSL сертификата Let's Encrypt

Далее создайте каталог ssl для GitLab и сгенерируйте dhparam (это займёт время):

mkdir -p /etc/gitlab/ssl
openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
chmod 600 /etc/gitlab/ssl/*

Генерация dhparam

Примечание: dhparam 2048 — баланс безопасности и скорости. При высоких требованиях безопасности используйте 4096, но генерация будет значительно дольше.

Шаг 5 — включение HTTPS в Nginx (встроенный в Omnibus)

Отредактируйте /etc/gitlab/gitlab.rb, поменяв external_url на https и добавив пути к сертификатам:

external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

Сохраните файл и примените конфигурацию:

gitlab-ctl reconfigure

Применение конфигурации GitLab

Если возникнут ошибки при запуске Nginx, просмотрите логи:

gitlab-ctl tail nginx
journalctl -u gitlab-runsvdir -b --no-pager | tail -n 200

Шаг 6 — настройка UFW (брандмауэр)

Включите UFW и откройте порты SSH, HTTP и HTTPS:

ufw enable
ufw allow ssh
ufw allow http
ufw allow https
ufw status

Открытие портов в UFW

Проверьте, чтобы SSH был доступен, особенно если вы подключены по сети: неправильная политика UFW может заблокировать вас.

Шаг 7 — послеустановочные действия

Откройте браузер и перейдите по адресу https://gitlab.example.com. При первом входе нужно сбросить пароль для пользователя root.

  • Логин по умолчанию: root
  • Смените пароль, заполните профиль и добавьте SSH-ключ.

Изменение профиля и аккаунта:

  • Настройки профиля (Profile Settings) → обновите имя и e-mail.
  • Account → смените имя пользователя.

Добавление SSH-ключа: создайте ключ на локальной машине (ssh-keygen), скопируйте содержимое id_rsa.pub и вставьте в GitLab → SSH Keys.

Ограничения регистрации и лимиты: Админ → Настройки → Account and Limit Settings — можно задать максимум проектов на пользователя и белый список доменов для регистрации.

Настройки системы GitLab

Шаг 8 — тестирование (создание проекта и первый push)

Создайте новый проект через веб-интерфейс и выполните базовые git-операции из терминала:

git config --global user.name 'hakase'
git config --global user.email 'you@example.com'

git clone https://gitlab.example.com/youruser/yourproject.git
cd yourproject
vim README.md
git add .
git commit -m 'Initial commit'
git push origin master

При использовании HTTPS вас попросят ввести учётные данные; при желании настройте Personal Access Token или добавьте SSH-ключ и используйте SSH-URL репозитория.

Первый push в GitLab


Отладка и типичные проблемы

  1. Nginx не запускается после reconfigure

    • Проверьте синтаксис SSL-путей и права доступа.
    • Просмотрите логи: gitlab-ctl tail nginx и /var/log/gitlab/nginx/*.
  2. Certbot не может проверить домен

    • Убедитесь, что DNS указывает на этот сервер и порты 80/443 открыты.
    • Временно отключите редирект на HTTPS или используйте DNS-валидацию.
  3. Push по HTTPS не принимает пароль

    • Создайте персональный токен (Access Token) или используйте SSH-ключ.
  4. Нехватка памяти

    • GitLab требует минимум 2 ГБ ОЗУ для базовой работы; на слабых серверах уменьшите количество рабочих процессов или используйте swap.

Безопасность и hardening (краткий чек-лист)

  • Включите HTTPS и автоматическое обновление сертификатов (certbot renew).
  • Настройте двухфакторную аутентификацию для пользователей.
  • Ограничьте доступ к административной панели по IP (через firewall или прокси).
  • Регулярно обновляйте Omnibus-пакеты: apt update && apt upgrade gitlab-ce.
  • Настройте резервное копирование: gitlab-rake gitlab:backup:create.
  • Проверяйте логи и метрики (gitlab-ctl tail, Prometheus/Grafana если включены).

Альтернативные подходы

  • Установка из исходников (source): даёт гибкость, но сложнее в поддержке и требует ручной настройки сервисов.
  • Docker / Helm (Kubernetes): удобно для контейнеризированных сред и масштабирования.
  • Managed GitLab.com: меньше работы по администрированию, но данные хранятся вне инфраструктуры.

Миграция и совместимость (советы)

  • Ubuntu 16.04 устарела — планируйте миграцию на LTS 18.04/20.04. Перед миграцией выполните gitlab-rake backup:create и проверьте совместимость версий Omnibus.
  • Ознакомьтесь с official upgrade path: обновляйте GitLab пошагово между мажорными версиями.

Ролевые чек-листы

Администратор:

  • Настроить DNS, сертификаты, firewall.
  • Настроить резервное копирование и мониторинг.
  • Проводить регулярные обновления.

DevOps-инженер:

  • Интегрировать CI/CD runners.
  • Настроить доступы и секреты (Vault/ENV).
  • Автоматизировать создание проектов и групп.

Разработчик:

  • Добавить SSH-ключ.
  • Настроить локальный git user.name и user.email.
  • Создать и протестировать pipeline.

Мини-методология обновления и отката (playbook)

  1. Перед обновлением: backup настройки и данных (gitlab-rake gitlab:backup:create).
  2. Проверить RELEASE NOTES для целевой версии.
  3. На тестовом сервере выполнить обновление и прогнать CI.
  4. Обновить продакшн в окне обслуживания.
  5. В случае проблемы — остановить сервисы и восстановить из бэкапа.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS.
  • Пользователь root может залогиниться и изменить пароль.
  • Проект создаётся, push/pull работают через SSH и/или HTTPS.

Полезные команды управления GitLab

gitlab-ctl status
gitlab-ctl restart
gitlab-ctl tail
gitlab-ctl reconfigure
gitlab-rake gitlab:backup:create

Короткий словарь (1‑строчные определения)

  • Omnibus: пакет с готовой сборкой GitLab и зависимостями.
  • external_url: URL, по которому пользователи обращаются к GitLab.
  • dhparam: параметры Диффи-Хеллмана для улучшения безопасности TLS.

Когда этот подход не подходит

  • Если необходима экстренная гибкость конфигурации серверов или специфичная версия PostgreSQL — установка из исходников предпочтительнее.
  • Для массового масштабирования и контейнеризации лучше использовать Kubernetes + Helm chart.

Советы по обслуживанию

  • Планируйте обновления и тестируйте на staging.
  • Мониторьте дисковое пространство — бэкапы и репозитории могут быстро разрастаться.
  • Включите автоматическое обновление сертификатов: добавьте cron для certbot renew.

Ресурсы и ссылки

Итог

Установка GitLab CE на Ubuntu 16.04 с помощью Omnibus — относительно прямой процесс: подготовка окружения, установка пакета, получение SSL-сертификата и базовая настройка сети и пользователей. Основная работа администратора — это поддержание безопасности, резервного копирования и регулярных обновлений.

Ключевые проверки после установки: HTTPS, возможность входа под root, создание и push в проект, резервное копирование.


Дополнительные изображения и скриншоты, использованные в статье:

Окно восстановления пароля root в GitLab

Вход в GitLab под root

Изменение профиля GitLab

Обновление профиля и e-mail

Изменение имени пользователя в GitLab

Генерация SSH-ключа на Ubuntu

Успешное добавление SSH-ключа в GitLab

Настройка ограничений регистрации и лимитов

Создание нового проекта в GitLab

Репозиторий успешно обновлён через браузер

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: защита от банковского трояна
Кибербезопасность

Herodotus: защита от банковского трояна

Включить новое меню «Пуск» в Windows 11
Windows

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы Excel: руководство
Excel

Панель полей сводной таблицы Excel: руководство

Включить новое меню «Пуск» в Windows 11 — инструкция
Windows

Включить новое меню «Пуск» в Windows 11 — инструкция

Как исправить дублирование Диспетчера задач в Windows 11
Windows

Как исправить дублирование Диспетчера задач в Windows 11

Как посмотреть историю просмотров Reels в Instagram
Социальные сети

Как посмотреть историю просмотров Reels в Instagram