Установка GitLab в Ubuntu 20.04

Приложение GitLab CE (Community Edition) – инструмент для хранения репозиториев Git вместе с некоторыми функциями разработчика. Например, он умеет отслеживать ошибки. За счет открытого кода он стал популярным при развертывании внутренних хранилищ с командным доступом к коду и возможностью его предоставления сторонним пользователям. 

В этой статье рассмотрим способ самостоятельной установки GitLab и его настройку. 

Установка И Настройка Gitlab В Ubuntu (1)

Требования к серверу

Понадобится компьютер минимум с двухъядерным процессором и объемом памяти 8 Гбайт. Размер и тип накопителя не принципиален (желательно избегать использования своп-пространства). Вместо локальной машины подойдет и облачный сервер с такими же характеристиками. На него следует установить операционную систему Ubuntu 20.04 (версия 18.04 тоже подойдет) и настроить домен, направленный на наш сервер. В примерах мы будем указывать условное имя example.com.

Установим зависимости

Прежде чем настраивать GitLab на сервере, рекомендуется инсталлировать приложения, которые необходимы для корректного функционирования инструмента. Все их можно скачать из официального репозитория Ubuntu. Первым делом обновим индекс пакетов и установим зависимости приложения:

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

Вероятно, что часть программ была установлена ранее, но лучше продублировать команду, чтобы они наверняка присутствовали на компьютере. При инсталляции postfix рекомендуется выбирать Internet Site и после запроса вводить IP-адрес хоста или буквенный домен. Тогда система сможет отправлять уведомления.

Установим GitLab

Чтобы начать установку приложения GitLab, сначала загрузим соответствующий сценарий. Для этого нужно зайти в директорию /tmp и выполнить команду:

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

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

less /tmp/script.deb.sh

Теперь можно запускать сценарий:

sudo bash /tmp/script.deb.sh

Команда подготовит компьютер для развертывания репозитория GitLab. После этого и получится управлять пакетами при помощи встроенных в операционную систему инструментов. Например, установить само приложение:

sudo apt install gitlab-ce

По завершении установки можно приступать к другим операциям.

Настроим брандмауэр

Сначала проверим текущее состояние брандмауэра. Нам нужно, чтобы был разрешен трафик по SSH, HTTP и HTTPS. Выполняем команду:

sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Сейчас открыт только доступ по SSH. Работать предстоит через протокол HTTP, GitLab поддерживает подключение SSL-сертификатов от Let’s Encrypt с доступом через HTTPS. Оба варианта взаимодействия нужно прописать в файле /etc/services. Заодно стоит проверить наличие в нем доступа по OpenSSH. Выполним команду:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

Теперь еще раз проверим состояние брандмауэра:

sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Все, интерфейс GitLab через веб-браузер стал доступным.

Изменим настройки

Перед тем как пользоваться GitLab, нужно отредактировать его конфигурацию:

sudo nano /etc/gitlab/gitlab.rb

После открытия файла нужно найти строку external_url (она расположена в самом начале). Там следует указать актуальное доменное имя сервера, в нашем случае это example.com. Лучше сразу внести поддержку протокола HTTPS, чтобы впоследствии программа работала с шифрованием SSL.

Пример изменений конфигурации:

##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

Следом найдем строку letsencrypt[‘contact_emails’]. Сюда вносят email, по которому пользователь будет уведомляться о возникающих ошибках. Чтобы активировать функцию, нужно убрать символ комментариев и указать свой email.

letsencrypt['contact_emails'] = [' example@example.com']

Теперь сохраним изменения, закрыв файл и согласившись с предложением. После введем команду для обновления параметров GitLab:

sudo gitlab-ctl reconfigure

Она инициализирует новые настройки, чтобы приложение узнало о нашем сервере. Процедура обновления происходит автоматически, запросы появляться на экране не будут. Заодно такой перезапуск перенастроит сертификат Let’s Encrypt на нужный домен.

Работа с GitLab через веб-интерфейс

Настроим доступ по логину

Интерфейс приложения доступен по адресу:

http://gitlab_domain_or_IP

В окне браузера откроется страница с приветствием и предложением выбрать пароль админа. Его лучше делать понадежнее, со строчными и прописными буквами, цифрами. После ввода следует нажать на «Change Your Password». Браузер перенаправит пользователя на форму аутентификации, где понадобится ввести данные аккаунта:

  • Username: root
  • Password: только что придуманный пароль.

После нажатия на «Sign In» система авторизует пользователя, и можно будет добавлять проект.

Настроим профиль

По умолчанию GitLab устанавливает стандартный профиль. Если хочется отредактировать его, кликнем по иконке аккаунта (справа в углу наверху экрана). В выпадающем меню выберем Settings и попадем в раздел Profile. Там есть возможность заменить аватарку, внести имя, email и другие настройки. Система самостоятельно подставляет такие значения:

  • Name: Administrator
  • Email: admin@example.com

Их следует заменить на собственные. Ведь имя пользователя увидят другие участники проекта, а почта понадобится для получения различных уведомлений. Обновление данных произойдет по клику на «Update Profile Settings». На указанный адрес придет письмо с предложением подтвердить регистрацию аккаунта.

Скорректируем имя пользователя

Имя по умолчанию root будет безопаснее изменить на пользовательское. Для этого выберем Account в меню слева. Внести новое имя можно в пункте Change Username. В этом же разделе можно настроить двухфакторную идентификацию.

Изменение способа входа повышает безопасность системы. Ведь root используется повсеместно, а это уже создает почву для взлома путем перебора паролей. Права доступа остаются прежними, зато риски несанкционированного доступа заметно снижаются. Чтобы сохранить новое имя, нажмем на «Update Username». Теперь при старте GitLab можно использовать другой аккаунт.

Добавим SSH-ключ

Теперь разберемся, как добавить ключ SSH на GitLab. Он используется для общения Git и GitLab. Для генерации ключей введите на локальном компьютере команду:

ssh-keygen

Рекомендуем принять стандартные параметры и выбрать пароль понадежнее. Это защитит ключи от взлома.

После считаем открытый ключ:

cat ~/.ssh/id_rsa.pub

В консоли отобразится ключ — скопируем его и перейдем в настройки профиля GitLab. Следом зайдем в меню SSH Keys и в поле, предложенном системой, внесем скопированную комбинацию цифр и символов. Можно добавить краткое описание, после чего подтвердить изменения нажатием на «Add Key». После сохранения обмен данными с локальной машиной будет осуществляться по защищенному каналу.

Ограничим или заблокируем открытую регистрацию

Пока наш экземпляр GitLab позволит зарегистрироваться любому пользователю, который по какой-либо причине выяснил IP-адрес или название домена. Доступно это и различным ботам, которые распространяют вредоносное ПО. Поэтому желательно закрывать такую возможность и давать доступ только проверенным участникам проектов.

Чтобы настроить систему, кликнем на «гаечный ключ», расположенный в правой верхней части экрана. На открывшейся странице будут отображены общие сведения. Через выпадающее меню выберем Settings и в разделе глобальных настроек хранилища GitLab включим блокировку регистрации в различных режимах.

Блокируем регистрацию

Функция полного отключения возможности зарегистрироваться расположена в разделе Sign-Up Restrictions. Там уберем галочку на пункте Sign-Up Enabled и нажмем на «Save» для сохранения новых параметров. После применения настроек на открывающейся странице пропадет форма регистрации.

Блокируем регистрацию по домену

Откроем Sign-Up Restrictions и поставим галочку в пункте Send Confirmation Email on Sign-Up. Она активирует функцию регистрации с обязательной проверкой электронной почты. Теперь внесем домен или их список в белый список через поле Whitelisted Domains for Sign-Ups. Если речь идет о нескольких адресах, каждый указываем в новой строке:

Whitelisted domains for sign-ups
example.com
*. example.com

Система поддерживает и поддомены (символ * в примере). Остается нажать на «Save Changes», и форма регистрации исчезнет с посадочной страницы.

Ограничим возможность создания проектов

По умолчанию система позволяет создавать до 10 проектов каждому пользователю. Но можно и ограничить эту возможность, если специалисты привлекаются для работы над уже существующими. Откроем Account and Limit Settings и изменим значение Default Project Limit. Если установить 0, новые пользователи не смогут создать ни одного проекта.

Default projects limit 0

Несмотря на такую блокировку, остается возможность добавлять аккаунты вручную и разрешать им необходимые действия. После сохранения изменений любые вновь присоединившиеся специалисты смогут работать только с существующими проектами.

Обновим сертификат Let’s Encrypt

Приложение GitLab по умолчанию обновляет сертификаты каждый четвертый день в полночь. Но можно изменить график, например, делать это 1 раз в неделю в 12:30. Выполняется настройка следующей командой:

letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Если требуется отключить автообновление, достаточно в файл /etc/gitlab/gitlab.rb добавить строку:

letsencrypt['auto_renew'] = false

Заключение

Мы разобрались, как устанавливать и настраивать GitLab. И теперь можем создавать новые проекты, перемещать старые в подготовленный репозиторий, управлять доступом к ним. Приложение продолжает развиваться и пополнять встроенный функционал, поэтому будет полезным интересоваться изменениями. В качестве репозитория лучше использовать облачные сервисы Timeweb Cloud.

Telegram
VK
Скопировать ссылку
Как использовать Axios в React
Как использовать Axios в React
Как пользоваться SSH
Как пользоваться SSH

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону