Установите GitLab на Rocky Linux 8 с помощью Let’s Encrypt |
Рождение Git — одна из самых знаменитых вех в мире открытого исходного кода. Он способствовал инновациям благодаря обширному сотрудничеству разработчиков со всего мира. Git — это бесплатная распределенная система контроля версий с открытым исходным кодом, которая позволяет эффективно и быстро обрабатывать как небольшие, так и очень крупные проекты. GitLab — это полностью интегрированная платформа на базе Git, созданная специально для команд разработчиков программного обеспечения. он имеет встроенные функции Git и более мощные функции, а также улучшает ваш рабочий процесс. В этом посте мы сосредоточимся на установке GitLab на Rocky Linux 8 и защите установки с помощью SSL-сертификатов Let’s Encrypt.
GitLab может работать на большинстве дистрибутивов GNU/Linux — системах EL (RHEL, CentOS, Rocky Linux, Fedora), Debian, Ubuntu, Arch Linux, Gentoo, а также на платформах Unix, таких как FreeBSD. Эту установку можно выполнить на виртуальной машине в гипервизоре внутренней инфраструктуры, в облачном экземпляре Rocky Linux или на физическом сервере. Основные требования к такой установке:
- Сервер Rocky Linux 8 с доступом в Интернет
- Минимальный объем памяти: 4 ГБ (рекомендуется 8 ГБ, если у вас есть возможность выделить больше)
- Минимум 2 ядра процессора (рекомендуется 4 ядра).
- Минимальное доступное дисковое пространство: 10 ГБ.
Мы выполняем установку GitLab на Rocky Linux 8 из официальных пакетов RPM (также известных как Omnibus GitLab). Omnibus GitLab содержит пакет GitLab и все его компоненты, являющиеся зависимостями, включая Redis, PostgreSQL и Sidekiq.
Следуйте инструкциям, описанным в этой статье, чтобы обеспечить рабочую установку GitLab на Rocky Linux 8, защищенную с помощью бесплатного SSL-сертификата Let’s Encrypt.
Шаг 1. Обновите систему Rocky Linux
Давайте начнем установку GitLab на Rocky Linux 8 с обновления всех пакетов в системе. Это гарантирует, что мы работаем в исправленной системе.
Запустите команду ниже, чтобы обновить систему и установленные пакеты:
sudo dnf -y upgrade
Если пакеты ядра обновлены, рассмотрите возможность перезагрузки после завершения процесса.
Шаг 2. Установите имя хоста, часовой пояс и ntp-сервер.
Нам нужно настроить правильное имя хоста для нашего сервера Rocky Linux 8. Замените git.example.com на желаемое имя хоста вашего сервера GitLab.
sudo hostnamectl set-hostname git.example.com
Также установите правильный часовой пояс. Африка/Найроби следует заменить на правильный часовой пояс вашего региона; Данные о часовом поясе можно найти в каталоге /usr/share/zoneinfo/.
sudo timedatectl set-timezone Africa/Nairobi
Наконец, настройте ntp-сервер chrony, чтобы убедиться, что синхронизация времени в системе правильная:
sudo dnf -y install chrony
sudo systemctl enable chronyd
sudo timedatectl set-ntp yes
sudo timedatectl set-local-rtc 0
Время синхронизации с NTP-серверами:
$ sudo chronyc sources
210 Number of sources = 8
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp2.hetzner.de 2 9 377 334 +3334ns[+8367ns] +/- 23ms
^? tilia.zsx.hu 0 10 0 - +0ns[ +0ns] +/- 0ns
^? littlericket.me 0 10 0 - +0ns[ +0ns] +/- 0ns
^? lucy.thehomeofanime.de 0 10 0 - +0ns[ +0ns] +/- 0ns
^? funky.f5s.de 0 6 0 - +0ns[ +0ns] +/- 0ns
^? ts5.sct.de 0 6 0 - +0ns[ +0ns] +/- 0ns
^? mail.masters-of-cloud.de 0 6 0 - +0ns[ +0ns] +/- 0ns
^? ntp.sauff.online 0 6 0 - +0ns[ +0ns] +/- 0ns
Подтвердите настройки времени и даты в вашей системе:
$ timedatectl
Local time: Tue 2023-04-04 09:36:18 EAT
Universal time: Tue 2023-04-04 06:36:18 UTC
RTC time: Tue 2023-04-04 06:36:18
Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Шаг 3. Добавьте репозиторий GitLab и установите библиотеки deps.
Добавьте репозиторий GitLab YUM, который содержит пакеты GitLab, необходимые во время установки.
Добавление репозитория GitLab CE:
sudo tee /etc/yum.repos.d/gitlab_gitlab-ce.repo<<EOL
[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
Добавление репозитория GitLab EE:
sudo tee /etc/yum.repos.d/gitlab_gitlab-ee.repo<<EOL
[gitlab_gitlab-ee]
name=gitlab_gitlab-ee
baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/8/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
Обновить список настроенных репозиториев:
$ sudo dnf repolist
repo id repo name
appstream Rocky Linux 8 - AppStream
baseos Rocky Linux 8 - BaseOS
extras Rocky Linux 8 - Extras
gitlab_gitlab-ce gitlab_gitlab-ce
Подтвердите, что он включен:
$ sudo dnf repolist gitlab_gitlab-ce
repo id repo name status
gitlab_gitlab-ce gitlab_gitlab-ce enabled
Установить Постфикс
Установите и включите почтовый агент Postfix, который будет использоваться для отправки уведомлений из GitLab. Но если вы будете использовать другое решение для отправки электронной почты, вы можете спокойно пропустить этот шаг и настроить внешний SMTP-сервер после установки GitLab:
sudo dnf -y install postfix
sudo systemctl enable --now postfix
Подтвердите статус услуги:
$ systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-07-09 13:06:11 EAT; 1min 31s ago
Process: 13273 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
Process: 13270 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 13265 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 13341 (master)
Tasks: 3 (limit: 101105)
Memory: 4.6M
CGroup: /system.slice/postfix.service
├─13341 /usr/libexec/postfix/master -w
├─13342 pickup -l -t unix -u
└─13343 qmgr -l -t unix -u
Установите другие зависимости и настройте брандмауэр.
Установите все остальные необходимые зависимости
sudo dnf install -y curl openssh-server policycoreutils perl
Если демон сервера OpenSSH не включен, включите его.
sudo systemctl enable --now sshd
Если у вас запущена служба firewalld, включите служебные порты http и https:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
Шаг 4. Установите GitLab в системе Rocky Linux 8.
Вам необходимо убедиться, что вы правильно настроили DNS. Мое DNS-имя для этого развертывания будет:
git.computingforgeeks.com
Проверьте распространение DNS с помощью следующей команды:
sudo dnf -y install bind-utils
dig A git.example.com +short
#Or from known DNS Server
dig A git.example.com @192.168.254.1 #192.168.254.1 being internal DNS server
Установите GitLab на Rocky Linux 8 без SSL
Мы рассмотрим два сценария установки: один без SSL, а другой с использованием SSL-сертификата Let’s Encrypt.
Для установки без HTTPS используйте команду ниже для установки GitLab в Rocky Linux 8:
# For GitLab CE
sudo EXTERNAL_URL="http://gitlab.example.com" dnf install -y gitlab-ce
# For GitLab EE
sudo EXTERNAL_URL="http://gitlab.example.com" dnf install -y gitlab-ee
Где :
- http://gitlab.example.com — URL-адрес, по которому будет доступен экземпляр GitLab.
Установите GitLab на Rocky Linux 8 без Let’s Encrypt SSL
Если у вас соблюдены следующие требования, вы можете использовать этот метод:
- Серверу сопоставлен общедоступный IP-адрес — напрямую из внешней сети или через NAT.
- В DNS настроено имя, разрешаемое через DNS-сервер.
Команда, используемая для установки GitLab с Let’s Encrypt SSL:
# GitLab CE Installation
sudo EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ce
# GitLab EE Installation
sudo EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ee
Обратите внимание, что в качестве протокола доступа у нас используется https , а не http. Не забудьте заменить gitlab.example.com правильным доменным именем.
У вас также есть возможность использовать собственный сертификат при установке GitLab.
После установки вы получите сообщение об успехе:
....
gitlab Reconfigured!
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab should be available at https://git.example.com
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-0
Verifying : gitlab-ce-14.0.5-ce.0.el8.x86_64 1/1
Installed:
gitlab-ce-14.0.5-ce.0.el8.x86_64
Complete!
Шаг 5. Доступ к веб-панели GitLab
В зависимости от выбора установки – http или https; получить доступ к панели управления с помощью любого из следующих URL-адресов:
# HTTP installation
http://git.example.com
# HTTPS
https://git.example.com
Вы получите интерфейс, в котором вам необходимо войти в систему:
Первоначальный случайно сгенерированный пароль для входа хранится в течение 24 часов в /etc/gitlab/initial_root_password:
sudo cat /etc/gitlab/initial_root_password
Войдите в систему, используя имя пользователя root и пароль, хранящиеся в файле /etc/gitlab/initial_root_password
Изменить пароль пользователя root
Чтобы изменить пароль root, перейдите в раздел «Профиль пользователя», Администратор(root) > Редактировать профиль.
Затем нажмите ссылку «Пароль».
Укажите текущий и новый пароль, который вы хотите установить для пользователя root:
Отключить самостоятельную регистрацию пользователей
Чтобы отключить регистрацию пользователей в веб-консоли, перейдите в Меню > Администратор.
Общие > Ограничения при регистрации > Развернуть
Снимите флажок Регистрация включена.
Сохраните изменения
Чтобы узнать о следующих шагах после установки, посетите официальную страницу документации GitLab. В списке описаны наиболее распространенные задачи после установки. Откройте и посмотрите, что можно настроить дальше.
В наших будущих статьях мы более подробно рассмотрим, как можно использовать GitLab для поддержки всех ваших конвейеров DevOps. Оставайтесь на связи и добавьте наш сайт в закладки для удобства доступа.
Статьи по Теме:
- Как использовать многоветвевой конвейер в Jenkins
- Настройка аутентификации GitLab FreeIPA LDAP