GitLab – это программный инструмент, созданный с целью хранения и управления репозиториями Git. Он облегчает и ускоряет процесс совместного написания кода, его тестирования и развертывания.
Основной функционал GitLab:
- Планирование и управление разрабатываемыми проектами;
- Создание, просмотр и управление кодом и данными проектов;
- Проверка кода благодаря автоматическому тестированию и отчетности;
- Мониторинг ресурсов и просмотр метрик;
- Использование готовых шаблонов моделей.
На этом список функционала не заканчивается. Это лишь основная часть, необходимая для понимания важности использования этого ПО в проектной деятельности.
В статье будет подробно описана инструкция по самостоятельной установке GitLab на Ubuntu и последующей его настройке.
Предварительные требования
Ниже приведен список требований, достаточных для установки GitLab на сервер.
Во-первых, понадобится сервер, расположенный либо на личном компьютере, либо в облаке. Исходя из документационных требований к GitLab, сервер должен быть снабжен:
- Четырехъядерным процессором (нагрузка до 500 пользователей);
- 4 ГБ оперативной памяти (нагрузка до 500 пользователей);
- ОС Ubuntu 22.04.
Во-вторых, понадобится доменное имя, которое будет указывать на соответствующий сервер. В данной инструкции в качестве примера будет использоваться бесплатный домен от Timeweb Cloud.
cloud
Шаг 1. Добавление необходимых зависимостей
Первым этапом будет установка необходимого для GitLab ПО. Скачать его можно из репозиториев Ubuntu.
Выполняем базовое обновление пакетов:
sudo apt-get update
А после устанавливаем необходимые зависимости:
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
Есть вероятность, что часть ПО из списка уже была установлена на сервер ранее. Лучшим решением будет продублировать всю строку, указанную выше, и убедиться, что все успешно установлено.
Следующее, что нужно установить на сервер — это Postfix (или Sendmail), который служит механизмом отправки уведомлений на email:
sudo apt-get install -y postfix
Во время инсталляции программы в открывшемся окне необходимо выбрать «Интернет-сайт», как показано на рисунке ниже.
Далее указываем домен сервера — в нашем случае testgitlab.tw1.su
.
Шаг 2. Установка GitLab
Теперь можно начинать устанавливать GitLab. Загрузим необходимый скрипт:
cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
Чтобы посмотреть и изучить работу данного скрипта, вводим команду:
sudo less /tmp/script.deb.sh
Если вас всё устраивает, можно переходить непосредственно к запуску скрипта:
sudo bash /tmp/script.deb.sh
Как только скрипт завершит работу можно начинать установку GitLab:
sudo apt install gitlab-ce
Шаг 3. Настройка брандмауэра
Для начала необходимо проверить по каким протоколам разрешен трафик. Чтобы посмотреть статут брандмауэра, вводим команду:
sudo ufw status
Как видно по рисунку, в данный момент разрешен трафик только по протоколу SSH. Вдобавок к SSH, нужно разрешить трафик по протоколам HTTP и HTTPS из-за того, что приложение GitLab взаимодействует с интернетом.
Разрешаем доступ HTTP:
sudo ufw allow http
А теперь HTTPS:
sudo ufw allow https
После внесенных изменений снова посмотрим статут брандмауэра. Как видно по рисунку ниже, все изменения вступили в силу.
Шаг 4. Настройка файла конфигурации
Перед запуском GitLab важно отредактировать конфигурацию в файле gitlab.rb
с помощью редактора nano
:
sudo nano /etc/gitlab/gitlab.rb
В открывшемся файле находим строку продемонстрированную на картинке ниже и изменяем имя домена на testgitlab.tw1.su
. У вас будет другое имя. Также сразу перейдем на более безопасный протокол шифрования — HTTPS.
После этого найдем следующую строку, также продемонстрированную на картинке ниже, и вставим в пустые скобки после знака равенства актуальный email. Это необходимо для отправки сообщения в случае возникновения проблем с доменом. Также не забываем, что нужно убрать комментирование перед этой строкой, чтобы все заработало.
Выполняем сохранение (CTRL+O) и выходим из файла (CTRL+X). Чтобы система внесла все изменения, запускаем реконфигурацию:
sudo gitlab-ctl reconfigure
Запущенный процесс не только передаст всю необходимую информацию приложению о сервере, но и перенастроит Let’s Encrypt для указанного домена.
Шаг 5. Знакомство с GitLab в браузере
Вводим в строке браузера указанное ранее доменное имя. В нашем случае оно будет выглядеть так:
https://testgitlab.tw1.su
Регистрация и авторизация
При первом входе открывается приветственная страница с возможностью указать пароль для учетной записи. После указания надежного пароля и его подтверждения произойдет перенаправление на окно аутентификации.
Чтобы войти в аккаунт администратора, необходимо заполнить:
- Имя пользователя —
root
; - Пароль — пароль, указанный ранее.
После входа в аккаунт откроется начальная страница, где пользователь может создать первый проект и приступить к работе.
Настройка профиля
У нового пользователя GitLab будут применены стандартные настройки пользователя. Чтобы их изменить, нужно перейти во вкладку «Settings», расположенном в правом верхнем углу окна в выпадающем меню.
В открывшимся разделе «Профиль» пользователь может изменить данные на актуальные.
Важными изменениями на этом этапе будут имя и адрес электронной почты. Первое будет отображаться для других участников проекта, а второе необходимо для получения уведомлений от сервиса. Чтобы новая почта привязалась, ее нужно подтвердить в полученном от сервиса письме.
Чтобы изменения вступили в силу, нужно нажать кнопку в самом низу экрана, как показано на картинке ниже.
Изменение имени пользователя
Переходим в раздел в меню настроек слева «Account». Здесь нужно изменить автоматически присвоенное имя на более уникальное, как показано на рисунке ниже. Это даст дополнительную безопасность аккаунту в случае попыток его взлома.
Также в этом разделе пользователь может добавить двухфакторную аутентификацию.
Добавление SSH-ключа
Для взаимодействия Git с GitLab необходимо сгенерировать и привязать публичный ключ в настройках.
Запускаем генерацию ключей:
ssh-keygen
Во время генерации система предложить указать адрес хранения пары ключей и пароль, чтобы обеспечить дополнительную защиту. Чтобы пропустить данные этапы, нужно нажать Enter.
По завершении генерации ключей, нужно скопировать публичный ключ и вставить его в соответствующем разделе, добавив краткое описание, как показано на рисунке ниже.
Открываем публичный ключ:
cat ~/.ssh/id_rsa.pub
После копирования его в нужный раздел нажимаем кнопку «Add key».
Первый проект
Чтобы создать первый проект в GitLab, достаточно зайти на главную страницу и нажать на область, выделенную на картинке ниже.
Далее откроется форма создания проекта. Заполним такие данные, как название и тип репозитория. Репозиторий может быть публичным (Public), приватным (Private) или внутренним (Internal).
Если планируется добавлять файлы из уже существующего репозитория, то не нужно ставить галочку в поле «Initialize repository with a README». В ином случае сделать это нужно обязательно.
Далее нажимаем кнопку «Create repo» и создаем первый проект.
Теперь можно загрузить файлы проекта, добавить пользователей для совместной работы или удалить проект, если это необходимо.
Запустите GitLab на облачном сервере
Заключение
В данной статье была продемонстрирована пошаговая инструкция по установке Gitlab на Ubuntu 22.04. После выполнения всех шагов, пользователь также сможет развернуть в системе первый проект и начать с ним работу.
Не работает. Что конкретно ему не нравится не понятно, но
sudo gitlab-ctl reconfigure
валится с ошибками, хотя всё сделано как в статье.Кроме того, не описано, что файрвол может быть не
ufw
, аiptables
. Хотя я думаю в моём случае дело не в нём, судя по выводуsudo netstat -ntlp
вообще веб-сервер его не стартует.Проблема была в нехватке ресурсов. С 1Гб памяти пересборка конфига гитлаба вываливалась с ошибкой. Увеличили до 4Гб, заработало.
Возможно стоит добавить упоминание об этом в статье.
Добрый день! В разделе «Предварительные требования» мы указываем, что для работы GitLab необходимо 4 ГБ памяти.
вполне работает ;)
=) больше не работает
А что именно не работает? Прошли по всей статье целиком — всё запустилось.
в конфиге /etc/gitlab/gitlab.rb отсутствует упоминание letsencrypt, а без него и https не запускается