- Установка GitLab в Ubuntu 20.04
- Требования к серверу
- Установим зависимости
- Установим GitLab
- Настроим брандмауэр
- Изменим настройки
- Работа с GitLab через веб-интерфейс
- Настроим доступ по логину
- Настроим профиль
- Скорректируем имя пользователя
- Добавим SSH-ключ
- Ограничим или заблокируем открытую регистрацию
- Блокируем регистрацию
- Блокируем регистрацию по домену
- Ограничим возможность создания проектов
- Обновим сертификат Let’s Encrypt
- Заключение
- How do I add an SSH key in gitlab?
- 5 Answers 5
Установка 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 через веб-браузер стал доступным.
Изменим настройки
Перед тем как пользоваться 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. В этом же разделе можно настроить двухфакторную идентификацию.
Изменение способа входа повышает безопасность системы. Ведь 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, новые пользователи не смогут создать ни одного проекта.
Несмотря на такую блокировку, остается возможность добавлять аккаунты вручную и разрешать им необходимые действия. После сохранения изменений любые вновь присоединившиеся специалисты смогут работать только с существующими проектами.
Обновим сертификат 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 .
How do I add an SSH key in gitlab?
Here is what my dashboard looks like: Not really sure where to add an SSH key. Anyone have any idea?
5 Answers 5
Go to your GitLab account: https://gitlab.com/
Click on Settings on the top right drop-down, which will appear once you select the icon(white-fox image [specific to my profile]).
Click on Settings on the top right drop-down, which will appear once you select the icon(white-fox image).
Add/Paste the SSH Key.
How to generate the ssh key: Download gitbash or putty:
After downloading gitbash/putty follow the steps:
- Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
- Generate a new ED25519 SSH key pair:
ssh-keygen -t ed25519 -C "email@example.com"
ssh-keygen -t rsa -b 4096 -C "email@example.com"
It will generate the key in => C:\Users\yourname.ssh directory.
Command to run on gitbash to clone the repository:
ssh-agent $(ssh-add C:\Users\youname\.ssh\id_rsa; git clone git@gitlab.com:xyz/SpringBootStarter.git)