Как установить и настроить GitLab в Ubuntu 16.04

Вступление

GitLab CE или Community Edition - это приложение с открытым исходным кодом, которое в основном используется для размещения репозиториев Git, с дополнительными функциями, связанными с разработкой, такими как отслеживание проблем. Он предназначен для размещения с использованием вашей собственной инфраструктуры и обеспечивает гибкость развертывания в качестве внутреннего хранилища репозитория для вашей команды разработчиков, публично как способ взаимодействия с пользователями или даже как способ участия участников в размещении своих собственных проектов.

Проект GitLab позволяет относительно просто настроить экземпляр GitLab на собственном оборудовании с помощью простого механизма установки. В этом руководстве мы рассмотрим, как установить и настроить GitLab на сервере Ubuntu 16.04.

Предпосылки

В этом руководстве предполагается, что у вас есть доступ к свежему серверу Ubuntu 16.04. В pubmitted требования к оборудованию GitLab рекомендуется использовать сервер с:

  • 2 ядра

  • 4 ГБ ОЗУ

Хотя вы можете обойтись заменой некоторого пространства подкачки на ОЗУ, это не рекомендуется. Для этого руководства мы будем предполагать, что у вас есть как минимум вышеуказанные ресурсы.

Для начала вам понадобится пользователь без полномочий root с доступом + sudo +, настроенным на сервере. Также рекомендуется установить базовый брандмауэр для обеспечения дополнительного уровня безопасности. Вы можете выполнить действия, описанные в нашем Ubuntu 16.04 начальное руководство по установке сервера, чтобы получить эту настройку.

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

Установка зависимостей

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

Поскольку во время этого сеанса мы впервые используем + apt +, мы можем обновить локальный индекс пакета, а затем установить зависимости, набрав:

sudo apt-get update
sudo apt-get install ca-certificates curl openssh-server postfix

Скорее всего, у вас уже установлено это программное обеспечение. Для установки + postfix + выберите * Интернет-сайт * при появлении запроса. На следующем экране введите доменное имя или IP-адрес вашего сервера, чтобы настроить, как система будет отправлять почту.

Установка 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-get 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, GitLab может также запросить и включить бесплатный сертификат TLS / SSL из Let в проекте 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                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Приведенный выше вывод указывает, что веб-интерфейс GitLab будет доступен после настройки приложения.

Редактирование файла конфигурации GitLab

Прежде чем вы сможете использовать приложение, вам нужно обновить один файл конфигурации и выполнить команду переконфигурации. Сначала откройте файл конфигурации Gitlab:

sudo nano /etc/gitlab/gitlab.rb

Рядом с вершиной находится строка конфигурации + external_url +. Обновите его, чтобы он соответствовал вашему собственному домену или IP-адресу. Если у вас есть домен, замените + http на` + https`, чтобы GitLab автоматически перенаправлял пользователей на сайт, защищенный сертификатом Let Encrypt, который мы будем запрашивать.

/etc/gitlab/gitlab.rb

# If your GitLab server does not have a domain name, you will need to use an IP
# address instead of a domain and keep the protocol as `http`.
external_url 'http://'

Далее, если ваш сервер GitLab имеет доменное имя, найдите в файле параметр + letsencrypt ['enable'] +. Раскомментируйте строку и установите + true +. Это скажет GitLab запросить сертификат Let Encrypt для вашего домена GitLab и настроить приложение для обслуживания трафика с ним.

Ниже ищите параметр + letsencrypt ['contact_emails'] +. Этот параметр определяет список адресов электронной почты, которые проект Let Encrypt может использовать для связи с вами в случае проблем с вашим доменом. Хорошая идея также раскомментировать и заполнить это, чтобы вы знали о любых проблемах:

/etc/gitlab/gitlab.rb

letsencrypt['enable'] =
letsencrypt['contact_emails'] = ['']

Сохраните и закройте файл. Теперь выполните следующую команду для перенастройки Gitlab:

sudo gitlab-ctl reconfigure

Это инициализирует GitLab, используя информацию, которую он может найти о вашем сервере. Это полностью автоматизированный процесс, поэтому вам не придется отвечать на любые запросы. Если вы включили интеграцию Let Encrypt, сертификат должен быть настроен для вашего домена.

Выполнение начальной настройки через веб-интерфейс

Теперь, когда GitLab запущен и доступ разрешен, мы можем выполнить некоторую начальную настройку приложения через веб-интерфейс.

Вход в первый раз

Посетите доменное имя вашего сервера GitLab в веб-браузере:

http://

Если вы включили Let’s Encrypt и использовали + https + в своем + external_url +, вы должны быть перенаправлены на защищенное HTTPS-соединение.

При первом посещении вы должны увидеть начальное приглашение установить пароль для учетной записи администратора:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/gitlab_initial_password2.png [приглашение для установки начального пароля GitLab]

В запросе начального пароля введите и подтвердите безопасный пароль для учетной записи администратора. Нажмите на кнопку * Изменить пароль *, когда вы закончите.

Вы будете перенаправлены на обычную страницу входа в GitLab:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/gitlab_first_signin2.png [приглашение первого входа в GitLab]

Здесь вы можете войти с паролем, который вы только что установили. Полномочия:

  • Имя пользователя: * root *

  • Пароль: [пароль, который вы установили]

Введите эти значения в поля для существующих пользователей и нажмите кнопку * Войти *. Вы войдете в приложение и перейдете на целевую страницу, которая предложит вам начать добавление проектов:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/landing_page2.png [начальная страница входа в GitLab]

Теперь вы можете внести некоторые простые изменения, чтобы настроить GitLab так, как вам нравится.

Настройка параметров вашего профиля

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

Чтобы внести необходимые изменения, нажмите на значок пользователя в верхнем правом углу интерфейса. В раскрывающемся меню выберите * Настройки *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/profile_settings_button2.png [кнопка настроек профиля GitLab]

Вы попадете в раздел * Профиль * ваших настроек:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/profile_settings2.png [страница настроек профиля GitLab]

Настройте адреса * Name * и * Email * из «Administrator» и «[email protected]» на более точные. Выбранное вами имя будет отображаться другим пользователям, а электронная почта будет использоваться для определения аватара по умолчанию, уведомлений, действий Git через интерфейс и т. Д.

Нажмите кнопку * Обновить настройки профиля * внизу, когда закончите:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/update_profile_settings_button2.png [кнопка настройки профиля обновления GitLab]

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

Изменение имени вашей учетной записи

Затем нажмите на элемент * Account * в левой строке меню:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/account_menu_item2.png [пункт меню учетной записи GitLab]

Здесь вы можете найти свой приватный токен API или настроить двухфакторную аутентификацию. Тем не менее, функциональность, которая нас интересует на данный момент, - это раздел * Изменить имя пользователя *.

По умолчанию первая административная учетная запись имеет имя * root *. Поскольку это известное имя учетной записи, безопаснее изменить его на другое имя. Вы по-прежнему будете иметь административные привилегии; единственное, что изменится, это имя:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/change_username2.png [раздел изменения имени пользователя в GitLab]

Нажмите кнопку * Обновить имя пользователя *, чтобы внести изменения:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/update_username_button2.png [кнопка обновления имени пользователя GitLab]

В следующий раз, когда вы войдете в GitLab, не забудьте использовать ваше новое имя пользователя.

Добавление ключа SSH в вашу учетную запись

В большинстве случаев вы захотите использовать SSH-ключи с Git для взаимодействия с вашими проектами 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 [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

Скопируйте блок текста, который отображается, и вернитесь в настройки своего профиля в веб-интерфейсе GitLab.

Нажмите на пункт * SSH Keys * в меню слева:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/ssh_keys_menu_item2.png [пункт меню GitLab SSH Keys]

В предоставленном месте вставьте открытый ключ, который вы скопировали с локального компьютера. Дайте ему описательный заголовок и нажмите кнопку * Добавить ключ *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/add_ssh_key2.png [GitLab добавить ключ SSH]

Теперь вы сможете управлять своими проектами и репозиториями GitLab с локального компьютера, не предоставляя учетные данные своей учетной записи GitLab.

Ограничение или отключение публичных регистраций (необязательно)

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

Для начала перейдите в административную зону, нажав на значок * гаечный ключ * в строке главного меню в верхней части страницы:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/admin_area_button2.png [кнопка административной области GitLab]

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

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/admin_settings_button2.png [кнопка административных настроек GitLab]

Вы попадете в глобальные настройки для своего экземпляра GitLab. Здесь вы можете настроить ряд параметров, которые влияют на возможность регистрации новых пользователей и их уровень доступа.

Отключение регистрации

Если вы хотите полностью отключить регистрацию (вы все равно можете вручную создавать учетные записи для новых пользователей), прокрутите вниз до раздела * Ограничения регистрации *.

Снимите флажок * Регистрация включена *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/deselect_sign-ups_enabled.png [GitLab отменяет выбор регистрации включен]

Прокрутите вниз и нажмите кнопку * Сохранить *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [кнопка сохранения настроек GitLab]

Раздел регистрации теперь должен быть удален с целевой страницы GitLab.

Ограничение регистрации по домену

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

В разделе * Ограничения регистрации * сначала установите флажок * Отправить подтверждение при регистрации *, чтобы пользователи могли войти в систему только после подтверждения своего адреса электронной почты.

Затем добавьте свой домен или домены в поле «Белые домены для регистрации» , по одному на строку. Вы можете использовать звездочку «» для указания доменных имен:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/restrict_sign-ups_by_domain.png [GitLab ограничивает регистрации по доменам]

Прокрутите вниз и нажмите кнопку * Сохранить *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [кнопка сохранения настроек GitLab]

Раздел регистрации теперь должен быть удален с целевой страницы GitLab.

Ограничение создания проекта

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

Внутри вы можете изменить * Ограничение проектов по умолчанию * на 0, чтобы полностью запретить новым пользователям создавать проекты:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/set_projects_to_zero.png [GitLab устанавливает проекты на ноль]

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

Прокрутите вниз и нажмите кнопку * Сохранить *:

изображение: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [кнопка сохранения настроек GitLab]

Новые пользователи теперь смогут создавать учетные записи, но не могут создавать проекты.

Создание задания Cron для автоматического обновления сертификатов Let Encrypt

Сертификаты Let Encrypt действительны только в течение 90 дней. Если вы ранее включили функцию Let Encrypt для своего домена GitLab, вам нужно будет регулярно обновлять сертификаты, чтобы избежать перерывов в обслуживании. GitLab предоставляет команду + gitlab-ctl renew-le-certs + для запроса новых сертификатов, когда ваши текущие активы приближаются к их истечению.

Чтобы автоматизировать этот процесс, мы можем создать задание cron для автоматического запуска этой команды на регулярной основе. Команда обновит сертификат только тогда, когда он близок к истечению, поэтому мы можем безопасно запускать его регулярно.

Для начала, создайте и откройте файл в + / etc / cron.daily / gitlab-le + в вашем текстовом редакторе:

sudo nano /etc/cron.daily/gitlab-le

Внутри вставьте следующий скрипт:

/etc/cron.daily/gitlab-le

#!/bin/bash

set -e

/usr/bin/gitlab-ctl renew-le-certs > /dev/null

Сохраните и закройте файл, когда вы закончите.

Отметьте файл как исполняемый, набрав:

sudo chmod +x /etc/cron.daily/gitlab-le

Теперь GitLab должен автоматически проверять каждый день, нужно ли обновлять свой сертификат Let Encrypt. Если это произойдет, команда обновит сертификат автоматически.

Заключение

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

Related