GitLab CE (Community Edition) — приложение с открытым исходным кодом, в основном используемое для хостинга хранилищ Git. Приложение имеет дополнительные функции, связанные с разработкой, такие как отслеживание проблем. Оно предназначено для размещения вашей собственной инфраструктуры, обеспечения гибкости развертывания внутреннего хранилища для вашей группы разработчиков, открытого взаимодействия с пользователями и размещения собственных проектов вкладчиков.
Проект GitLab позволяет относительно легко создать экземпляр GitLab на собственном оборудование с использованием удобного механизма установки. В этом руководстве мы расскажем, как устанавливать и настраивать GitLab на сервере Ubuntu 18.04.
Для данного обучающего руководства вам потребуется следующее:
В опубликованных требованиях GitLab к аппаратному обеспечению рекомендуется использовать сервер со следующими параметрами:
Хотя вы можете обойти это требование, используя файл подкачки оперативной памяти, делать этого не рекомендуется. Для целей настоящего руководства мы предполагаем, что ваша система как минимум отвечает вышеуказанным требованиям.
Прежде чем выполнять установку GitLab, важно установить программное обеспечение, используемое при установке и на постоянной основе. К счастью, все требуемое программное обеспечение можно легко установить из заданных по умолчанию хранилищ пакетов Ubuntu.
Поскольку мы впервые используем apt
в этом сеансе, мы можем обновить индекс локального пакета и установить зависимости с помощью следующей команды:
- sudo apt update
- sudo apt install ca-certificates curl openssh-server postfix
Вероятно, некоторые элементы этого программного обеспечения у вас уже установлены. Для установки postfix
выберите вариант Internet Site в диалоговом окне. На следующем экране введите доменное имя вашего сервера, чтобы настроить отправку почты в системе.
Настроив зависимости, мы можем приступить к установке 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. Это позволит вам управлять GitLab с помощью тех же средств управления пакетами, которые вы используете для других системных пакетов. Завершив эту задачу, вы можете начать установку приложения GitLab с помощью apt
:
- sudo apt install gitlab-ce
При этом в системе будут установлены необходимые компоненты.
Прежде чем настраивать 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
еще раз; на настоящий момент должен быть настроен доступ как минимум к следующим двум службам:
- 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 будет доступен, как только мы настроим это приложение.
Прежде чем вы можете использовать приложение, вам нужно обновить файл конфигурации и запустить команду изменения конфигурации. Прежде всего, откройте файл конфигурации Gitlab:
- sudo nano /etc/gitlab/gitlab.rb
Наверху вы увидите строку конфигурации external_url
. Измените эту строку для соответствия с вашим доменом. Замените http
на https
, чтобы GitLab автоматически перенаправлял пользователей на сайт, защищенный сертификатом Let’s Encrypt:
##! 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’s Encrypt мог бы использовать для связи с вами, если с вашим доменом возникнут проблемы. Будет полезно указать эти адреса в комментарии, чтобы вы могли получать уведомления о любых проблемах:
letsencrypt['contact_emails'] = ['sammy@example.com']
Сохраните и закройте файл. Запустите следующую команду, чтобы изменить конфигурацию Gitlab:
- sudo gitlab-ctl reconfigure
Команда выполняет инициализацию GitLab, используя информацию о вашем сервере, которую она сможет найти. Этот процесс полностью автоматизирован, и вам не нужно вводить никакие данные в диалоги. Данный процесс также настроит сертификат Let’s Encrypt для вашего домена.
Когда GitLab работает, и доступ разрешен, мы можем выполнить начальную настройку конфигурации приложения через веб-интерфейс.
Откройте доменное имя вашего сервера GitLab в вашем браузере:
https://example.com
При первом входе откроется диалоговое окно установки пароля для учетной записи администратора:
В начальном диалоговом окне ввода пароля укажите и подтвердите защищенный пароль для административной учетной записи. Нажмите кнопку Change your password (Изменить пароль), когда будете готовы.
После этого вы перейдете на стандартную страницу входа в систему GitLab:
Здесь вы можете войти в систему с помощью только что заданного пароля. Учетные данные:
Введите эти значения в поля для существующих пользователей и нажмите кнопку Sign in (Вход). После входа в приложение откроется начальная страница, куда вы сможете добавлять проекты:
Теперь вы можете внести простые изменения и настроить GitLab желаемым образом.
Одной из первых задач после установки должна стать настройка профиля. GitLab использует разумные значения по умолчанию, но обычно после начала использования программного обеспечения их требуется изменить.
Чтобы внести необходимые изменения, нажмите значок пользователя в правом верхнем углу интерфейса. Выберите пункт Settings (Настройки) в выпадающем меню:
Откроется раздел настроек Profile (Профиль):
Измените имя и адрес электронной почты с Administrator и admin@example.com на более подходящие значения. Введенное имя будет отображаться другим пользователям, а адрес электронной почты будет использоваться для определения аватара по умолчанию, отправки уведомлений, в действиях Git через интерфейс и т. д.
После завершения настройки нажмите кнопку Update Profile settings (Обновить настройки профиля):
На указанный адрес электронной почты будет отправлено письмо с подтверждением. Следуйте указаниям в письме, чтобы подтвердить учетную запись и начать ее использовать с GitLab.
Нажмите Account (Учетная запись) в левой панели меню:
Здесь вы можете найти свой частный токен API или настроить двухфакторную аутентификацию. Однако пока что нас интересует раздел Change username (Изменить имя пользователя).
По умолчанию первой административной учетной записи присваивается имя root. Поскольку это имя широко известно, безопаснее заменить его другим именем. Изменится только имя учетной записи, права администратора у вас сохранятся. Замените root предпочитаемым именем пользователя:
Нажмите кнопку Update username (Обновить имя пользователя), чтобы внести изменения:
При следующем входе в GitLab обязательно используйте новое имя пользователя.
В большинстве случаев вы захотите использовать с Git ключи SSH для взаимодействия с проектами GitLab. Для этого вам нужно добавить свой открытый ключ SSH в учетную запись GitLab.
Если вы уже создали на локальном компьютере пару ключей SSH, вы можете просмотреть открытый ключ с помощью следующей команды:
- 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 sammy@gitlab.docsthat.work
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
Скопируйте отображаемый блок текста и вернитесь в настройки профиля в веб-интерфейсе GitLab.
Нажмите пункт SSH Keys (Ключи SSH) в левом меню:
Вставьте в указанное место открытый ключ, скопированный с локального компьютера. Присвойте ему описательное название и нажмите кнопку Add key (Добавить ключ):
Теперь вы должны иметь возможность управлять проектами и хранилищами GitLab с локального компьютера без ввода учетных данных GitLab.
Возможно на начальной странице GitLab вы заметили, что зарегистрировать учетную запись может кто угодно. Если вы собираетесь разместить публичный проект, эта возможность будет полезна. Однако в большинстве случаев желательны более строгие ограничения.
Прежде всего, откройте область администрирования. Для этого нажмите значок гаечного ключа на панели меню вверху страницы:
На следующей странице вы увидите обзор своего экземпляра 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 (Сохранить изменения):
Новые пользователи смогут создавать учетные записи, но не смогут создавать проекты.
По умолчанию в GitLab имеется запланированная задача обновления сертификатов Let’s Encrypt каждые четыре дня после полуночи, точное время зависит от параметра external_url
. Вы можете изменить эти настройки в файле /etc/gitlab/gitlab.rb
. Например, если вы хотите выполнять обновление каждый 7-й день в 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. Вы можете импортировать или создавать новые проекты и настраивать надлежащие уровни доступа для членов вашей команды. GitLab постоянно добавляет функции и обновляет свою платформу, и мы рекомендуем часто посещать главную страницу проекта, чтобы не пропустить информацию об улучшениях или важных уведомлениях.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!