Установка и настройка GitLab в Ubuntu 16.04
GitLab CE (Community Edition) – это приложение с открытым исходным кодом, предназначенное для хранения репозиториев Git, которое также предоставляет функции разработки. Вы можете разместить это приложение в своей собственной инфраструктуре. GitLab обеспечивает гибкость при развертывании внутреннего хранилища для команды разработчиков, а также позволяет другим пользователям (например, сторонним участникам разработки) публиковать свои собственные проекты.
Приложение GitLab легко установить и настроить на своей машине. Данное руководство поможет вам в этом.
Требования
- Свежий сервер Ubuntu 16.04.
- 2 ядра, 2GB RAM минимум (согласно требованиям GitLab к аппаратному обеспечению). Использовать своп-пространство не рекомендуется.
- Пользователь с доступом к sudo (настроить такого пользователя поможет это руководство).
Установка зависимостей
Сначала нужно установить программы, которые обеспечат корректную работу приложения GitLab. Все они находятся в официальном репозитории Ubuntu.
Обновите индекс пакетов и установите зависимости приложения:
sudo apt-get update
sudo apt-get 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. Благодаря этому вы сможете управлять пакетами GitLab с помощью стандартных инструментов управления пакетами, предлагаемых операционной системой. Теперь можно установить приложение GitLab:
sudo apt-get install gitlab-ce
Эта команда установит все необходимые компоненты. Прежде чем запустить приложение, нужно выполнить команду для начальной конфигурации:
sudo gitlab-ctl reconfigure
Эта команда автоматически соберёт данные о вашем сервере и запустит GitLab с учётом полученной информации.
Настройка брандмауэра
После установки GitLab нужно открыть порт для приложения в брандмауэре (если вы следовали руководству по начальной настройке сервера, вы заблокировали порты с помощью ufw).
Просмотрите текущее состояние брандмауэра:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
На данный момент брандмауэр не блокирует только SSH. Чтобы открыть приложение GitLab, нужно настроить трафик HTTP.
Для этого достаточно добавить HTTP в список поддерживаемых протоколов брандмауэра.
Примечание: Если ранее вы по какой-то причине не добавили в этот список OpenSSH, сделайте это сейчас.
sudo ufw allow http
sudo ufw allow OpenSSH
Снова проверьте состояние ufw.
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
Теперь у вас есть доступ к веб-интерфейсу GitLab.
Настройка GitLab с помощью веб-интерфейса
Чтобы получить доступ к интерфейсу GitLab, перейдите по ссылке:
http://gitlab_domain_or_IP
На экране появится приветственная страница, которая предложит выбрать пароль администратора.
Выберите и подтвердите надёжный пароль и нажмите Change your password.
После этого появится форма аутентификации. Введите свои учётные данные:
- Username: root
- Password: вы выбрали его только что
Нажмите Sign in. На экране появится посадочная страница, которая предложит вам добавить новые проекты.
Теперь можно внести поправки в настройки GitLab.
Настройка профиля
Добавьте новые данные в свой профиль. При установке GitLab заполняет профиль данными по умолчанию, которые рекомендуется изменить.
Чтобы отредактировать профиль, кликните на иконку пользователя в правом верхнем углу интерфейса. В выпадающем меню выберите Profile Settings. Вы попадёте в раздел настроек Profile, где вы сможете выбрать новую аватарку, указать имя, адрес электронной почты и т.п.
По умолчанию приложение использует в полях Name и Email такие значения:
Name
Administrator
Email
admin@example.com
Замените их своими данными. Выбранное вами имя будут видеть другие пользователи, а электронная почта будет использоваться уведомлений, извещений интерфейса Git и т.д.
На предоставленный адрес электронной почты вы получите письмо с подтверждением. Следуйте инструкциям письма, чтобы подтвердить свой аккаунт и начать работу в GitLab.
Изменение имени пользователя
В верхнем меню выберите Account.
Здесь вы найдете закрытый токен API. Также здесь можно настроить двухфакторную аутентификацию и изменить имя пользователя, которое вы указываете при входе в аккаунт. Для этого выберите раздел Change username.
По умолчанию аккаунт администратора использует имя root. Очевидно, что такое имя очень часто используется, а потому оно небезопасно и его нужно сразу изменить.
Примечание: Конечно, после изменения имени у вас останутся все права.
Выберите уникальное имя и нажмите кнопку Update username.
Теперь при входе в аккаунт GitLab используйте это имя пользователя вместо root
Добавление SSH-ключа
В большинстве случаев для взаимодействия между Git и GitLab используются SSH-ключи. Добавьте открытый ключ SSH в аккаунт GitLab.
Если у вас уже есть пара ключей SSH на локальной машине, вы можете просмотреть их:
cat ~/.ssh/id_rsa.pub
Команда вернёт объемный результат:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 8host@mydesktop
Скопируйте этот ключ и вернитесь в настройки профиля.
Если же команда cat вернула следующее сообщение:
cat: /home/8host/.ssh/id_rsa.pub: No such file or directory
у вас нет SSH-ключей. Чтобы создать такую пару ключей, введите:
ssh-keygen
Примите стандартные параметры и выберите надёжный пароль, который защитит ключи.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/8host/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/8host/.ssh/id_rsa.
Your public key has been saved in /home/8host/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 8host@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
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 8host@mydesktop
Скопируйте ключ и вернитесь в настройки профиля GitLab. Откройте меню SSH Keys.
В предложенное поле введите скопированный открытый ключ, выберите для него описательное название и нажмите Add key.
Теперь вы можете управлять проектами и репозиториями GitLab с локальной машины, не предоставляя при этом учётных данных GitLab.
Ограничение или блокировка открытой регистрации (опционально)
На данный момент посадочная страница вашего экземпляра GitLab позволяет любому пользователю пройти регистрацию и создать аккаунт. Это удобно, если вы разрабатываете общедоступные проекты и поощряете участие в разработке сторонних пользователей. Если же это закрытый проект, вы можете ограничить или совсем заблокировать возможность регистрироваться. Для этого нажмите на значок гаечного ключа в правом верхнем углу.
На появившейся странице вы увидите обзор экземпляра GitLab. Для настройки параметров нажмите на значок шестеренки в правом верхнем углу и выберите в выпадающем меню пункт Settings.
Примечание: На момент написания руководства (сентябрь 2016) в GitLab присутствует баг, который влияет на видимость иконки настроек на узких экранах. Если вы не видите меню настроек, попытайтесь развернуть окно браузера на весь экран. Также можно обойти эту проблему, посетив страницу настроек GitLab:
http://gitlab_domain_or_IP/admin/application_settings
В глобальных настройках GitLab вы сможете изменить ряд параметров, в том числе и заблокировать возможность регистрации.
Блокировка регистрации
Чтобы полностью отключить такую возможность, откройте раздел Sign-up Restrictions. Уберите галочку в Sign-up enabled, а затем нажмите Save.
Форма регистрации исчезнет с посадочной страницы приложения.
Ограничение регистрации по домену
Если GitLab поддерживает адреса электронной почты, связанные с одним доменом, вы можете ограничить возможность регистрации на основе этого домена.
Откройте Sign-up Restrictions и поставьте галочку в Send confirmation email on sign-up. Это позволит пользователям регистрироваться только после проверки адреса электронной почты.
Затем добавьте домен (или домены) в белый список, поле Whitelisted domains for sign-ups. Каждый домен должен находиться в отдельной строке.
Whitelisted domains for sign-ups
example.com
*. example.com
Примечание: Символ * включает поддержку псевдонимов доменов.
Нажмите Save. Форма регистрации исчезнет с посадочной страницы приложения.
Ограничение возможности создавать проекты
По умолчанию любой новый пользователь может создать 10 проектов максимум. Если вы хотите привлечь к разработке проекта новых пользователей, но хотите ограничить их право создавать новые проекты, откройте Account and Limit Settings.
Измените Default projects limit. Чтобы полностью отнять право на создание новых проектов, выберите значение 0.
Default projects limit 0
Вы сможете добавлять новых пользователей вручную, у них будет доступ к внутренним и внешним проектам. Сохраните новые настройки.
Новые пользователи смогут создавать аккаунты, однако не смогут добавлять новые проекты.
Заключение
Теперь у вас есть рабочий экземпляр GitLab. Вы можете переместить свои проекты и управлять доступом к ним.
Прежде чем продолжить разработку проектов, нужно защитить GitLab с помощью SSL-сертификата. Если вы не настроите SSL, ваши конфиденциальные данные могут быть перехвачены злоумышленниками. Создать SSL-сертификат для GitLab вам поможет это руководство.
Tags: Git, GitLab, SSH, Ubuntu 16.04
2 комментария
Скрипт установка gitlab в конце ругается на отсутствие библиотеки у gem:
—–
Could not find gem ‘underscore-rails (~> 1.8)’ in any of the gem sources listed
in your Gemfile or available on this machine.
—-
Вылечилось добавлением ее
sudo gem install underscore-rails
и повтором команды установки gitlab:
sudo apt-get install gitlab
Требования:
….
Пользователь с доступом к sudo (настроить такого пользователя поможет это руководство).
В описании и в процессе установки нигде не упоминается где указать этого пользователя или что либо запускать от его имени.
Куда его засунуть??
Спасибо.