Поиск по сайту:

Установите 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

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

  1. Серверу сопоставлен общедоступный IP-адрес — напрямую из внешней сети или через NAT.
  2. В 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

Статьи по данной тематике: