Gitlab linux установка и настройка

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

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

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

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

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

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.

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

Прежде чем настраивать 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

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

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

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

sudo apt install gitlab-ce

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

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

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

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

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

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 через веб-браузер стал доступным.

Читайте также:  Установка 1с файловый вариант linux

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

Перед тем как пользоваться 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 через веб-интерфейс

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

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

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

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

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

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

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

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

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

Читайте также:  Computers using linux os

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

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

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

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

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

В консоли отобразится ключ — скопируем его и перейдем в настройки профиля 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, новые пользователи не смогут создать ни одного проекта.

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

Читайте также:  Linux make install example

Обновим сертификат 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 .

Источник

Installing GitLab with Omnibus packages

By default, Omnibus GitLab automatically generates a password for the initial administrator user account ( root ) and stores it to /etc/gitlab/initial_root_password for at least 24 hours. For security reasons, after 24 hours, this file is automatically removed by the first gitlab-ctl reconfigure .

If GitLab can’t detect a valid hostname for the server during the installation, a reconfigure does not run.

    Pass the GITLAB_ROOT_PASSWORD environment variable to the installation command provided the hostname for the server is set up correctly. If during the installation GitLab doesn’t automatically perform a reconfigure, you have to pass the GITLAB_ROOT_PASSWORD variable to the first gitlab-ctl reconfigure run.

Before the first reconfigure, edit /etc/gitlab/gitlab.rb (create it if it doesn’t exist) and set:

Both of these methods apply only during the initial database seeding, which happens during the first reconfigure. For subsequent reconfigure runs, neither of the aforementioned methods have any effect. In that case, use the random password in /etc/gitlab/initial_root_password to log in, or reset the root password.

Using Docker image

You can also use the Docker images provided by GitLab to install and configure a GitLab instance. Check the documentation to know more.

Uninstall the Linux package (Omnibus)

Optional. To remove all users and groups created by Omnibus GitLab before removing the GitLab package (with apt or yum ):

 gitlab-ctl stop  

If you have problems removing accounts or groups, run userdel or groupdel manually to delete them. You might also want to manually remove the leftover user home directories from /home/ .

To preserve your data (repositories, database, configuration), stop GitLab and remove its supervision process:

 systemctl stop gitlab-runsvdir  systemctl disable gitlab-runsvdir /usr/lib/systemd/system/gitlab-runsvdir.service  systemctl daemon-reload  gitlab-ctl uninstall 

Uninstall the package (replace with gitlab-ce if you have GitLab FOSS installed):

  apt remove gitlab-ee  yum remove gitlab-ee 

Источник

Оцените статью
Adblock
detector