Как установить и настроить GitLab на Debian 9

Вступление

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

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

Предпосылки

Для этого урока вам понадобятся:

В pubmitted требования к оборудованию GitLab рекомендуется использовать сервер с:

  • 2 ядра

  • 8 ГБ ОЗУ

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

  • Доменное имя указывает на ваш сервер. Для получения дополнительной информации см. Нашу документацию о том, как get начался с DNS на DigitalOcean. Этот учебник будет использовать доменное имя * example.com * в демонстрационных целях.

Шаг 1 - Установка зависимостей

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

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

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

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

Шаг 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

Это установит необходимые компоненты в вашей системе.

Шаг 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, разрешив профиль приложения «WWW Full» через наш брандмауэр. Если у вас еще не был включен трафик OpenSSH, вам следует разрешить этот трафик и сейчас:

sudo ufw allow "WWW Full"
sudo ufw allow OpenSSH

Снова проверьте + ufw status, на этот раз добавив флаг` + verbose`; вы должны увидеть доступ, настроенный как минимум к этим двум службам:

sudo ufw status verbose
OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80,443/tcp (WWW Full)      ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80,443/tcp (WWW Full (v6)) ALLOW IN    Anywhere (v6)

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

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

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

sudo nano /etc/gitlab/gitlab.rb

Рядом с вершиной находится строка конфигурации + external_url +. Обновите его, чтобы он соответствовал вашему домену. Измените + http на` + https`, чтобы GitLab автоматически перенаправлял пользователей на сайт, защищенный сертификатом Let 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 'http://'

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

/etc/gitlab/gitlab.rb

letsencrypt['contact_emails'] = ['']

Сохраните и закройте файл. Выполните следующую команду, чтобы перенастроить Gitlab:

sudo gitlab-ctl reconfigure

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

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

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

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

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

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 *. Поскольку это известное имя учетной записи, безопаснее изменить его на другое имя. Вы по-прежнему будете иметь административные привилегии; единственное, что изменится - это имя. Замените * 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.

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

Возможно, вы заметили, что любой может зарегистрировать учетную запись при посещении целевой страницы вашего экземпляра 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/new_save_changes_button.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/new_save_changes_button.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/new_save_changes_button.png [кнопка сохранения настроек GitLab]

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

Обновление сертификатов Let’s Encrypt

По умолчанию у GitLab есть запланированное задание для обновления сертификатов Let 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 регулярно добавляет функции и обновляет свою платформу, поэтому обязательно заходите на домашнюю страницу проекта, чтобы быть в курсе любых улучшений или важных уведомлений.

Related