Установка GitLab на AlmaLinux 8

GitLab — это инструмент для хранения и управления репозиториями Git. Он дает возможность выполнять совместную разработку силами нескольких команд, применять обновления кода и откатывать изменения, если это необходимо.

Рассмотрим установку бесплатной версии GitLab Community Edition (GitLab CE) на сервер с AlmaLinux 8.

Подготовка системы

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

Обновление системы:

dnf update -y

Удаление SELinux

dnf remove -y selinux*

Установка утилит

dnf install -y wget mc net-tools unzip

Настройка брандмауэра

В качестве межсетевого экрана будет использоваться iptables.

Удаление Firewalld

Остановка сервиса firewalld:

systemctl stop firewalld

Выключение сервиса автозагрузки firewalld:

systemctl disable firewalld

Маскировка сервиса firewalld:

systemctl mask --now firewalld

Удаление firewalld:

dnf remove -y firewalld

Установка и включение iptables

Установка iptables:

dnf install -y iptables-services

Включение сервиса iptables в автозагрузку:

systemctl enable iptables

Запуск сервиса iptables:

systemctl start iptables

Проверка статуса службы iptables:

systemctl status iptables

Перезагрузка ОС:

reboot

По документации нужно открыть порты 80 и 443, так же открыл порт 8080 сервера приложений Puma, так как только при открытых портах http, https была 502 ошибка.

Создадим файл настроек iptables:

mcedit iptables.sh

и внесем в него следующее содержимое:

#!/bin/sh
# - Очищаем таблицы
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# - Политики по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# - Разрешить трафик по петлевому интерфейсу
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# - Разрешим передавать пакеты, относящиеся к уже установленным соединениям
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# - Разрешить входящий PING
iptables -A INPUT -p icmp -j ACCEPT
# - Разрешить все исходящие
iptables -I OUTPUT 1 -j ACCEPT
# - Доступ по SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# - Разрешить доступ к WEB серверу
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# - Разрешить доступ к Puma
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# - Сохранить настройки
service iptables save

Сохраняем и назначаем права на выполнение:

chmod +x iptables.sh

Выполняем скрипт:

./iptables.sh

Посмотреть список правил iptables можно командой:

iptables --line-numbers -L -v -n

Установка GitLab

Установка необходимых зависимостей:

dnf install -y curl policycoreutils openssh-server perl

Для отправки уведомлений, установим postfix:

dnf install -y postfix

Добавим репозиторий GitLab для бесплатной версии.

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

Затем установим пакет GitLab.

EXTERNAL_URL="http://gitlab.mailns.local" dnf install -y gitlab-ce

После выполнения установки, появится сообщение о готовности GitLab к работе.

Убедитесь, что вы правильно настроили свой DNS, и замените http://gitlab.mailns.local на свой адрес, по которому вы хотите получить доступ GitLab.

Для HTTPS адресов GitLab автоматически запросит сертификат Let’s Encrypt, для чего требуется входящий HTTP-доступ и действительное имя хоста. Также можете использовать свой собственный сертификат или просто использовать HTTP.

Если вы не указали собственный пароль во время установки, пароль будет сгенерирован случайным образом и сохранен в течение 24 часов в файле /etc/gitlab/initial_root_password. Используйте этот пароль с именем пользователя root для входа.

Откроем файл с паролем:

mcedit /etc/gitlab/initial_root_password

Открываем браузер и вводим адрес, который указали при установки, http://gitlab.mailns.local. Мы должны увидеть страницу авторизации, на которой вводим имя пользователя root и сгенерированный пароль из файла /etc/gitlab/initial_root_password.

Ссылки
Install self-managed GitLab
Troubleshooting Omnibus GitLab installation issues