Вступление
GitLab CE, или Community Edition, - это приложение с открытым исходным кодом, в основном используемое для размещения репозиториев Git, с дополнительными функциями, связанными с разработкой, такими как отслеживание проблем. Он предназначен для размещения с использованием вашей собственной инфраструктуры и обеспечивает гибкость развертывания в качестве внутреннего хранилища репозитория для вашей команды разработчиков, общедоступного способа взаимодействия с пользователями или средства для участников, размещающих свои собственные проекты.
Проект GitLab позволяет относительно просто настроить экземпляр GitLab на собственном оборудовании с помощью простого механизма установки. В этом руководстве мы рассмотрим, как установить и настроить GitLab на сервере Ubuntu 18.04.
Предпосылки
Для этого урока вам понадобятся:
-
Сервер Ubuntu 18.04 с некорневым пользователем sudo и базовым межсетевым экраном. Чтобы настроить это, следуйте нашемуUbuntu 18.04 initial server setup guide.
published GitLab hardware requirements рекомендуют использовать сервер с:
-
2 ядра
-
8 ГБ ОЗУ
Хотя вы можете обойтись заменой некоторого пространства подкачки на ОЗУ, это не рекомендуется. Для этого руководства мы будем предполагать, что у вас есть как минимум вышеуказанные ресурсы.
-
Доменное имя указывает на ваш сервер. Для получения дополнительной информации см. Нашу документацию о том, какget started with DNS on DigitalOcean. В этом руководстве будет использоваться доменное имяexample.com.
[[step-1 -—- install-the-dependencies]] == Шаг 1. Установка зависимостей
Прежде чем мы сможем установить сам GitLab, важно установить некоторое программное обеспечение, которое он использует во время установки и на постоянной основе. К счастью, все необходимое программное обеспечение может быть легко установлено из стандартных репозиториев Ubuntu.
Так как мы впервые используемapt
во время этого сеанса, мы можем обновить локальный индекс пакета, а затем установить зависимости, набрав:
sudo apt update
sudo apt install ca-certificates curl openssh-server postfix
Скорее всего, у вас уже установлено это программное обеспечение. Для установкиpostfix
при появлении запроса выберитеInternet Site. На следующем экране введите доменное имя вашего сервера, чтобы настроить, как система будет отправлять почту.
[[step-2 -—- install-gitlab]] == Шаг 2. Установка GitLab
Теперь, когда зависимости установлены, мы можем установить сам GitLab. Это простой процесс, использующий сценарий установки для настройки вашей системы с репозиториями GitLab.
Перейдите в каталог/tmp
, а затем загрузите сценарий установки:
cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
Не стесняйтесь проверять загруженный скрипт, чтобы убедиться, что вы знакомы с действиями, которые он предпримет Вы также можете найти размещенную версию скриптаhere:
less /tmp/script.deb.sh
Когда вы будете удовлетворены безопасностью скрипта, запустите установщик:
sudo bash /tmp/script.deb.sh
Сценарий настроит ваш сервер для использования поддерживаемых GitLab репозиториев. Это позволяет вам управлять GitLab с помощью тех же инструментов управления пакетами, которые вы используете для других ваших системных пакетов. Как только это будет завершено, вы можете установить фактическое приложение GitLab с помощьюapt
:
sudo apt install gitlab-ce
Это установит необходимые компоненты в вашей системе.
[[step-3 -—- adjusting-the-firewall-rules]] == Шаг 3. Настройка правил брандмауэра
Перед настройкой GitLab вам необходимо убедиться, что правила брандмауэра достаточно разрешительны, чтобы разрешить веб-трафик. Если вы следовали руководству, указанному в предварительных требованиях, у вас будет включен брандмауэрufw
.
Чтобы просмотреть текущее состояние вашего активного брандмауэра, введите:
sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Как видите, текущие правила пропускают трафик SSH, но доступ к другим сервисам ограничен. Поскольку GitLab является веб-приложением, мы должны разрешить доступ HTTP. Поскольку мы воспользуемся возможностью GitLab запрашивать и включать бесплатный сертификат TLS / SSL отLet’s Encrypt, давайте также разрешим доступ по протоколу HTTPS.
Сопоставление протокола с портом для HTTP и HTTPS доступно в файле/etc/services
, поэтому мы можем разрешить этот трафик по имени. Если у вас еще не был включен трафик OpenSSH, вам следует разрешить этот трафик и сейчас:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
Еще раз проверьтеufw status
; вы должны увидеть доступ, настроенный как минимум к этим двум службам:
sudo ufw status
OutputStatus: 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 будет доступен после настройки приложения.
[[шаг-4 -—- редактирование-файла-конфигурации-gitlab]] == Шаг 4 - Редактирование файла конфигурации GitLab
Прежде чем вы сможете использовать приложение, вам необходимо обновить файл конфигурации и выполнить команду переконфигурации. Сначала откройте файл конфигурации Gitlab:
sudo nano /etc/gitlab/gitlab.rb
Вверху находится строка конфигурацииexternal_url
. Обновите его, чтобы он соответствовал вашему домену. Изменитеhttp
наhttps
, чтобы GitLab автоматически перенаправлял пользователей на сайт, защищенный сертификатом Let’s Encrypt:
/etc/gitlab/gitlab.rb
##! 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']
. Этот параметр определяет список адресов электронной почты, которые проект Let Encrypt может использовать для связи с вами в случае проблем с вашим доменом. Рекомендуется раскомментировать и заполнить это, чтобы вы знали о любых проблемах:
/etc/gitlab/gitlab.rb
letsencrypt['contact_emails'] = ['[email protected]']
Сохраните и закройте файл. Выполните следующую команду, чтобы перенастроить Gitlab:
sudo gitlab-ctl reconfigure
Это инициализирует GitLab, используя информацию, которую он может найти о вашем сервере. Это полностью автоматизированный процесс, поэтому вам не придется отвечать на любые запросы. Процесс также настроит сертификат Let Encrypt для вашего домена.
[[step-5 -—- execution-initial-configuration-through-the-web-interface]] == Шаг 5 - Выполнение начальной настройки через веб-интерфейс
С запущенным GitLab и разрешенным доступом мы можем выполнить некоторую начальную настройку приложения через веб-интерфейс.
Вход в первый раз
Посетите доменное имя вашего сервера GitLab в веб-браузере:
https://example.com
При первом посещении вы должны увидеть начальное приглашение установить пароль для учетной записи администратора:
В запросе начального пароля введите и подтвердите безопасный пароль для учетной записи администратора. По завершении нажмите кнопкуChange your password.
Вы будете перенаправлены на обычную страницу входа в GitLab:
Здесь вы можете войти с паролем, который вы только что установили. Полномочия:
-
Имя пользователя:root
-
Пароль: [пароль, который вы установили]
Введите эти значения в поля для существующих пользователей и нажмите кнопкуSign in. Вы войдете в приложение и перейдете на целевую страницу, которая предложит вам начать добавление проектов:
Теперь вы можете внести некоторые простые изменения, чтобы настроить GitLab так, как вам нравится.
Настройка параметров вашего профиля
Одна из первых вещей, которую вы должны сделать после новой установки, - привести свой профиль в лучшую форму. GitLab выбирает некоторые разумные значения по умолчанию, но они обычно не подходят, когда вы начинаете использовать программное обеспечение.
Чтобы внести необходимые изменения, нажмите на значок пользователя в верхнем правом углу интерфейса. В появившемся выпадающем меню выберитеSettings:
Вы попадете в разделProfile своих настроек:
Отрегулируйте адресName иEmail от «Администратора» и «[email protected]» на более точные. Выбранное вами имя будет отображаться другим пользователям, а электронная почта будет использоваться для определения аватара по умолчанию, уведомлений, действий Git через интерфейс и т. Д.
По завершении нажмите кнопкуUpdate Profile settings внизу:
Письмо с подтверждением будет отправлено на указанный вами адрес. Следуйте инструкциям в электронном письме, чтобы подтвердить свою учетную запись, чтобы вы могли начать использовать ее с GitLab.
Изменение имени вашей учетной записи
Затем щелкните элементAccount в левой строке меню:
Здесь вы можете найти свой приватный токен API или настроить двухфакторную аутентификацию. Однако интересующая нас функциональность - это секцияChange username.
По умолчанию первой учетной записи администратора присвоено имяroot. Поскольку это известное имя учетной записи, безопаснее изменить его на другое имя. Вы по-прежнему будете иметь административные привилегии; единственное, что изменится - это имя. Заменитеroot на ваше предпочтительное имя пользователя:
Нажмите кнопкуUpdate username, чтобы внести изменения:
В следующий раз, когда вы войдете в GitLab, не забудьте использовать ваше новое имя пользователя.
Добавление ключа SSH в вашу учетную запись
В большинстве случаев вы захотите использовать SSH-ключи с Git для взаимодействия с вашими проектами GitLab. Для этого вам нужно добавить свой открытый ключ SSH в свою учетную запись GitLab.
Если у вас уже есть пара ключей SSH, созданная на вашемlocal computer, вы обычно можете просмотреть открытый ключ, набрав:
cat ~/.ssh/id_rsa.pub
Вы должны увидеть большой кусок текста, например так:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Скопируйте этот текст и вернитесь на страницу настроек профиля в веб-интерфейсе GitLab.
Если вместо этого вы получите сообщение, которое выглядит следующим образом, у вас еще не настроена пара ключей SSH на вашем компьютере:
Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory
Если это так, вы можете создать пару ключей SSH, набрав:
ssh-keygen
Примите значения по умолчанию и при необходимости укажите пароль для локальной защиты ключа:
OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+
Получив это, вы можете отобразить свой открытый ключ, как указано выше, набрав:
cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop
Скопируйте отображаемый блок текста и вернитесь в свой профильSettings в веб-интерфейсе GitLab.
Щелкните элементSSH Keys в левом меню:
В предоставленном месте вставьте открытый ключ, который вы скопировали с вашего локального компьютера. Дайте ему описательный заголовок и нажмите кнопкуAdd key:
Теперь вы сможете управлять своими проектами и репозиториями GitLab с локального компьютера, не предоставляя учетные данные своей учетной записи GitLab.
[[step-6 -—- restting-or-dishibited-public-sign-ups-optional]] == Шаг 6. Ограничение или отключение публичных регистраций (необязательно)
Возможно, вы заметили, что любой может зарегистрировать учетную запись при посещении целевой страницы вашего экземпляра GitLab. Это может быть то, что вы хотите, если вы хотите разместить публичный проект. Однако во многих случаях более строгие настройки желательны.
Для начала перейдите в административную область, нажав наwrench icon в строке главного меню вверху страницы:
На следующей странице вы можете увидеть обзор вашего экземпляра GitLab в целом. Чтобы настроить параметры, щелкните элементSettings в нижней части левого меню:
Вы перейдете к глобальным настройкам вашего экземпляра GitLab. Здесь вы можете настроить ряд параметров, которые влияют на возможность регистрации новых пользователей и уровень их доступа.
Отключение регистрации
Если вы хотите полностью отключить регистрацию (вы все еще можете вручную создавать учетные записи для новых пользователей), прокрутите вниз до разделаSign-up Restrictions.
Снимите флажокSign-up enabled:
Прокрутите вниз и нажмите кнопкуSave changes:
Раздел регистрации теперь должен быть удален с целевой страницы GitLab.
Ограничение регистрации по домену
Если вы используете GitLab как часть организации, предоставляющей адреса электронной почты, связанные с доменом, вы можете ограничить регистрацию по доменам вместо того, чтобы полностью отключить их.
В разделеSign-up Restrictions выберите полеSend confirmation email on sign-up, которое позволит пользователям входить в систему только после того, как они подтвердят свой адрес электронной почты.
Затем добавьте свой домен или домены в полеWhitelisted domains for sign-ups, по одному домену в строке. Вы можете использовать звездочку «*» для указания доменных имен:
Прокрутите вниз и нажмите кнопкуSave changes:
Раздел регистрации теперь должен быть удален с целевой страницы GitLab.
Ограничение создания проекта
По умолчанию новые пользователи могут создавать до 10 проектов. Если вы хотите предоставить доступ новым пользователям извне для видимости и участия, но хотите ограничить их доступ к созданию новых проектов, вы можете сделать это в разделеAccount and Limit Settings.
Внутри вы можете изменитьDefault projects limit на 0, чтобы полностью запретить новым пользователям создавать проекты:
Новые пользователи по-прежнему могут быть добавлены в проекты вручную и будут иметь доступ к внутренним или общедоступным проектам, созданным другими пользователями.
Прокрутите вниз и нажмите кнопкуSave changes:
Новые пользователи теперь смогут создавать учетные записи, но не могут создавать проекты.
Обновление сертификатов Let's Encrypt
По умолчанию GitLab имеет запланированную задачу, настроенную для обновления сертификатов Let's Encrypt после полуночи каждый четвертый день с точной минутой на основе вашегоexternal_url
. Вы можете изменить эти настройки в файле/etc/gitlab/gitlab.rb
. Например, если вы хотите обновить каждый 7-й день в 12:30, вы можете настроить это следующим образом:
/etc/gitlab/gitlab.rb
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
Вы также можете отключить автоматическое продление, добавив дополнительный параметр в/etc/gitlab/gitlab.rb
:
/etc/gitlab/gitlab.rb
letsencrypt['auto_renew'] = false
Благодаря автоматическому обновлению вам не нужно беспокоиться о перебоях в обслуживании.
Заключение
Теперь у вас должен быть рабочий экземпляр GitLab, размещенный на вашем собственном сервере. Вы можете начать импортировать или создавать новые проекты и настраивать соответствующий уровень доступа для вашей команды. GitLab регулярно добавляет функции и обновляет свою платформу, поэтому обязательно заходите на домашнюю страницу проекта, чтобы быть в курсе любых улучшений или важных уведомлений.