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

0 Акции
0
0
0
0

Введение

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

Проект GitLab позволяет создать как минимум один экземпляр GitLab на вашем оборудовании с помощью механизма установки. Это руководство расскажет вам, как установить и настроить GitLab Community Edition на сервере Ubuntu.

Предпосылки
  • Сервер под управлением Ubuntu с пользователем без прав root, имеющим привилегии судо И активный брандмауэр.
  • 4 ядра для вашего процессора
  • 4 ГБ оперативной памяти
  • Доменное имя, указывающее на ваш сервер

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

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

Сначала обновите локальный список пакетов:

sudo apt update

Затем установите зависимости, введя эту команду:

sudo apt install ca-certificates curl openssh-server postfix tzdata perl

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

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

Шаг 2 — Установка GitLab

Несмотря на зависимости, вы можете установить GitLab. Этот процесс использует установочный скрипт для настройки вашей системы с репозиториями GitLab.

Сначала войдите в папку /tmp:

cd /tmp

Затем загрузите установочный скрипт:

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

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

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
Output
Status: 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
Output
Status: 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

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

sudo nano /etc/gitlab/gitlab.rb

Найдите строку конфигурации external_url. Обновите её в соответствии с вашим доменом и обязательно измените http на https, чтобы пользователи автоматически перенаправлялись на сайт, защищённый сертификатом Let's Encrypt:

...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...

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

letsencrypt['contact_emails'] = ['[email protected]']

После внесения изменений сохраните и закройте файл. Если вы используете nano, это можно сделать, нажав CTRL+X, затем Y А потом ВХОДИТЬ Сделай это.

Выполните следующую команду для перенастройки GitLab:

sudo gitlab-ctl reconfigure

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

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

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

Войти в первый раз

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

https://your_domain

При первом посещении вам будет представлена страница входа:


GitLab сгенерирует для вас безопасный начальный пароль. Он будет сохранён в папке, к которой у вас есть доступ как у администратора с правами sudo:

sudo nano /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

На странице входа введите следующее:

  • Имя пользователя: root
  • Пароль: [пароль указан в /etc/gitlab/initial_root_password]

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


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

Обновите свой пароль

Одним из первых действий после входа в систему является смена пароля. Для этого нажмите на значок в правом верхнем углу панели навигации и выберите «Изменить профиль».


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


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


Измените настройки своего профиля

GitLab выбирает разумные значения по умолчанию, но обычно они не подходят для начала использования программы. Чтобы внести необходимые изменения, нажмите на значок пользователя в правом верхнем углу панели навигации и выберите «Изменить профиль».

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


После завершения обновления нажмите кнопку «Обновить настройки профиля» внизу. Вам будет предложено ввести пароль для подтверждения изменений. На указанный вами адрес будет отправлено электронное письмо с подтверждением. Следуйте инструкциям в письме, чтобы подтвердить свою учётную запись и использовать её с GitLab.

Изменить имя учетной записи

Затем выберите «Учетная запись» на левой панели навигации:


Здесь вы можете включить двухфакторную аутентификацию и изменить имя пользователя. По умолчанию первая учётная запись администратора называется root. Поскольку это имя учётной записи широко известно, безопаснее изменить его на другое. У вас останутся права администратора. Изменится только имя. Замените root на желаемое имя пользователя:


Нажмите кнопку «Обновить имя пользователя», чтобы внести изменения. Вам будет предложено подтвердить изменение. При следующем входе в GitLab не забудьте использовать новое имя пользователя.

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

Вы можете включить SSH-ключи в Git для взаимодействия с проектами GitLab. Для этого вам необходимо добавить открытый SSH-ключ в свою учётную запись GitLab.

В левой навигационной панели выберите Ключи SSH:


Если вы уже создали пару ключей SSH на локальном компьютере, вы можете просмотреть открытый ключ, введя следующее:

cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Скопируйте этот текст и введите его в поле «Ключ» в вашем экземпляре GitLab. Если вместо этого вы получите другое сообщение, вы ещё не настроили пару ключей SSH на своей машине:

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Если это так, вы можете сгенерировать пару ключей SSH, введя следующую команду:

[environment local]
ssh-keygen

Примите значения по умолчанию и при необходимости укажите пароль для локальной защиты ключа:

Output
[environment local]
Generating 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
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Вставьте этот текст в поле «Ключ» в вашем экземпляре GitLab. Дайте ему описательное название и нажмите кнопку «Добавить ключ».

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

Шаг 6 — Ограничьте или отключите публичные регистрации

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

Чтобы начать работу, перейдите в раздел администрирования, нажав на меню-гамбургер в верхней панели навигации, и выберите «Администрирование» в раскрывающемся меню:


Выберите «Настройки» на левой панели навигации:


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

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

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

Затем снимите флажок «Включить регистрацию»:


Не забудьте нажать кнопку «Сохранить изменения» после внесения изменений. Раздел регистрации теперь удалён с целевой страницы GitLab.

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

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

Затем добавьте свой домен или домены в белый список для регистрации (по одному домену в каждой строке). Для указания подстановочных доменов можно использовать звёздочку “*”:


После завершения нажмите кнопку «Сохранить изменения». Раздел регистрации теперь удалён с целевой страницы GitLab.

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

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

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


Новых пользователей по-прежнему можно добавлять в проекты вручную, и они смогут получать доступ к внутренним или публичным проектам, созданным другими пользователями. После обновления не забудьте нажать кнопку «Сохранить изменения». Новые пользователи теперь могут создавать учётные записи, но не смогут создавать проекты.

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

По умолчанию в GitLab настроено запланированное задание для обновления сертификатов Let's Encrypt после полуночи каждые четвёртые сутки в точную минуту, указанную в вашем external_url. Вы можете изменить эту настройку в файле /etc/gitlab/gitlab.rb.

Например, если вы хотите, чтобы подписка обновлялась каждый седьмой день в 12:30, вы можете настроить её соответствующим образом. Для этого перейдите в файл конфигурации:

sudo nano /etc/gitlab/gitlab.rb

Затем найдите следующие строки в файле и удалите # и обновите следующим образом:

...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...

Вы также можете отключить автоматическое продление, установив letsencrypt['auto_renew'] на false:

...
letsencrypt['auto_renew'] = false
...

Благодаря автоматическому продлению вам не придется беспокоиться о перерывах в обслуживании.

Результат

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться