Как установить GitLab на Rocky Linux 9/AlmaLinux 9 |
Контроль версий/контроль версий можно определить как отслеживание и управление изменениями в программном коде. Таким образом, системы контроля версий помогают отслеживать и управлять этими изменениями с течением времени. Это действительно помогает в разработке, поскольку позволяет команде DevOps работать умнее и быстрее, сокращая время разработки и повышая производительность. Самым популярным программным обеспечением для контроля версий (VCS) являются TFS, Mercurial, ClearCase, SVN, Git, Helix Core (Perforce) и т. д.
Git был впервые выпущен в 2005 с целью помочь командам использовать ветки и слияния для создания проекта. Функция контроля версий Git позволяет нескольким разработчикам независимо работать над одним проектом. Это позволяет отдельным пользователям добавлять изменения отдельно, сохраняя при этом отслеживание и журналы. Git настолько отличается от других систем контроля версий тем, что он не полагается на централизованно хранимую базу данных, а использует распределенную систему.
GitLab – это веб-инструмент с открытым исходным кодом, предоставляющий распределенную платформу контроля версий. Этот инструмент поддерживает разработку программного обеспечения с использованием процессов непрерывной доставки (CD) и непрерывной интеграции (CI), поэтому разработчики и компании предпочитают его для размещения репозиториев Git.
Функции, связанные с GitLab:
- Простая интеграция с Jenkins, Docker, Slack, Kubernetes, JIRA, LDAP и т. д.
- Интеграция с такими IDE, как Eclipse, Visual Studio, Koding и IntelliJ.
- Локальная или облачная установка
- Мониторинг производительности
- Зеркальное отображение репозитория и высокая доступность (HA)
- Хостинг статических веб-сайтов (GitLab Pages)
- Аналитика развития
- Служба поддержки (тикетная система)
- Инструмент ChatOp (Mattermost)
- Качество кода (климат кода)
- Функциональность Code Review и инструмент проверки приложений
- Управление проблемами, отслеживание ошибок и доски
GitLab предлагает две основные редакции:
- GitLab Community Edition (CE): это бесплатная версия.
- GitLab Enterprise Edition (EE): для использования требуется лицензия. Он основан на Git и обладает расширенными функциями, включая групповую синхронизацию LDAP, несколько ролей и журналы аудита. Он также обеспечивает интеграцию авторизации с более глубокой аутентификацией.
В этом руководстве представлена подробная иллюстрация того, как установить и настроить GitLab в Rocky Linux 9/AlmaLinux 9.
Требования к установке
Для этого руководства вам потребуется:
- 1 ГБ или более доступной оперативной памяти на хосте
- Полное доменное имя (для сертификатов SSL)
- Пользователь с правами sudo
№1: Установите необходимые пакеты
Мы начнем с обновления доступных пакетов до последних доступных версий:
sudo dnf -y update
Установите необходимые зависимости пакета;
sudo dnf -y install curl vim policycoreutils python3-policycoreutils git
#2: Добавьте репозиторий GitLab CE в Rocky Linux 9/AlmaLinux 9.
GitLab не предоставляется в репозиториях Rocky Linux 9/AlmaLinux 9 по умолчанию. Чтобы иметь возможность его установить, нам нужно добавить официальный репозиторий в нашу систему.
Чтобы добавить репозиторий GitLab CE в Rocky Linux 9/AlmaLinux 9, используйте команду:
sudo vim /etc/yum.repos.d/gitlab_gitlab-ce.repo
Добавьте в файл следующие строки:
[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
[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/SRPMS
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
Проверьте, добавлен ли репозиторий:
$ dnf repolist
repo id repo name
appstream Rocky Linux 9 - AppStream
baseos Rocky Linux 9 - BaseOS
extras Rocky Linux 9 - Extras
gitlab_gitlab-ce gitlab_gitlab-ce
gitlab_gitlab-ce-source gitlab_gitlab-ce-source
№3: Установите GitLab CE на Rocky Linux 9/AlmaLinux 9.
После добавления репозиториев в систему установите GitLab CE на Rocky Linux 9/AlmaLinux 9, как показано:
sudo dnf install gitlab-ce -y
Дерево зависимостей:
Transaction Summary
================================================================================
Install 1 Package
Total download size: 1.1 G
Installed size: 16 E
Is this ok [y/N]: y
После завершения установки вы увидите это:
#4: Настройка GitLab CE Rocky Linux 9/AlmaLinux 9
GitLab хранит свой файл конфигурации по адресу /etc/gitlab/gitlab.rb, нам нужно отредактировать конфигурацию, задав переменные, подходящие для нашей среды.
Откройте файл для редактирования:
sudo vim /etc/gitlab/gitlab.rb
В файле отредактируйте следующие переменные:
external_url 'http://gitlab.example.com'
Замените gitlab.example.com своим доменным именем для GitLab. Прокрутите список и выполните любую другую желаемую конфигурацию. После завершения сохраните файл и примените изменения с помощью команды:
sudo gitlab-ctl reconfigure
Пример вывода:
Running handlers:
[2022-08-06T12:30:09+02:00] INFO: Running report handlers
Running handlers complete
[2022-08-06T12:30:09+02:00] INFO: Report handlers complete
Infra Phase complete, 605/1616 resources updated in 05 minutes 02 seconds
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.
NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
gitlab Reconfigured!
Проверьте, запущен ли GitLab:
$ sudo gitlab-ctl status
run: alertmanager: (pid 35396) 72s; run: log: (pid 35072) 168s
run: gitaly: (pid 35425) 67s; run: log: (pid 34222) 341s
run: gitlab-exporter: (pid 35373) 74s; run: log: (pid 34861) 201s
run: gitlab-kas: (pid 35350) 76s; run: log: (pid 34540) 308s
run: gitlab-workhorse: (pid 35362) 75s; run: log: (pid 34711) 230s
run: grafana: (pid 35408) 71s; run: log: (pid 35260) 105s
run: logrotate: (pid 34114) 355s; run: log: (pid 34122) 354s
run: nginx: (pid 34754) 226s; run: log: (pid 34764) 222s
run: node-exporter: (pid 35369) 75s; run: log: (pid 34825) 212s
run: postgres-exporter: (pid 35402) 71s; run: log: (pid 35120) 161s
run: postgresql: (pid 34376) 321s; run: log: (pid 34397) 319s
run: prometheus: (pid 35380) 74s; run: log: (pid 35019) 178s
run: puma: (pid 34618) 249s; run: log: (pid 34626) 246s
run: redis: (pid 34160) 349s; run: log: (pid 34169) 347s
run: redis-exporter: (pid 35375) 74s; run: log: (pid 34890) 189s
run: sidekiq: (pid 34646) 243s; run: log: (pid 34662) 240s
Вы можете остановить и запустить Gitlab с помощью команд:
sudo gitlab-ctl stop
sudo gitlab-ctl start
Разрешите службы HTTP/HTTPS и SSH через брандмауэр:
sudo firewall-cmd --permanent --add-service={ssh,http,https} --permanent
sudo firewall-cmd --reload
#5: Доступ к веб-консоли GitLab
Доступ к Gitlab теперь можно получить по указанному URL http://gitlab.example.com. Получите пароль root с помощью команды:
$ sudo cat /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 first time (usually, the first reconfigure run).
# 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: w5hNDOCgqHmv+ZNMdfeOcgzNAEXlh39bbloli3jVpBA=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
Теперь войдите в систему, как показано:
При успешном входе вы увидите панель ниже. Установите, хотите ли вы, чтобы учетная запись использовалась всеми или для личного использования путем отключения/включения регистрации пользователей
Теперь измените пароль root на предпочтительный пароль в области администратора.
После установки создайте новый проект, нажав «Новый проект».
Предусмотрено 3 варианта: создать пустой проект, импортировать или создать с использованием шаблона.
Для этого руководства я буду использовать шаблон;
После создания проекта он будет выглядеть, как показано ниже:
Из командной строки вы можете клонировать в репозиторий, используя ключи SSH или HTTP/HTTPS. Например, используя HTTP:
№6: Защитите GitLab с помощью SSL-сертификатов
Защита GitLab с помощью SSL предотвращает несанкционированный доступ к вашим данным. Это можно сделать путем создания самозаверяющих сертификатов или сертификатов Let’s Encrypt, как показано.
Вариант 1. Создание самозаверяющих сертификатов.
Используя OpenSSL, сгенерируйте закрытый ключ:
openssl genrsa -out gitlab.key 2048
Создайте запрос на подпись сертификата (CSR);
openssl req -new -key gitlab.key -out gitlab.csr
Теперь подпишите сертификат:
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
Теперь у вас есть сгенерированная пара ключей. Скопируйте ключи в /etc/gitlab/trusted-certs.
sudo mkdir /etc/gitlab/ssl/
sudo cp gitlab.crt gitlab.key /etc/gitlab/ssl/
Вариант 2. Создайте сертификаты Let’s Encrypt.
Если у вас есть полное доменное имя, вы можете использовать Let’s Encrypt бесплатно. По умолчанию это отключено, как показано на скриншоте ниже.
Отредактируйте файл конфигурации GitLab.
sudo vim /etc/gitlab/gitlab.rb
Вокруг строки 2481 раскомментируйте строки Let’s Encrypt.
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email '] # This should be an array of email addresses to add as contacts
letsencrypt['auto_renew'] = true
Создайте доверенные сертификаты SSL для доменного имени:
sudo gitlab-ctl reconfigure
Настройте GitLab для использования сертификатов SSL.
Чтобы GitLab мог использовать сгенерированные сертификаты, отредактируйте файл конфигурации:
sudo vim /etc/gitlab/gitlab.rb
Внесите следующие изменения и укажите соответствующие пути сертификатов:
external_url 'https://gitlab.example.com'
################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
Для самозаверяющих сертификатов укажите путь к сертификатам:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
Сохраните файл и перенастройте GitLab;
sudo gitlab-ctl reconfigure
Доступ к GitLab по протоколу HTTPS
Вуаля!
На этом заканчивается это подробное руководство по установке и настройке GitLab в Rocky Linux 9/AlmaLinux 9. Надеюсь, это было важно для вас.
Узнать больше:
- Устранить «URL-адрес заблокирован: запросы к локальной сети запрещены» Ошибка GitLab
- Миграция GitLab с RHEL 6 НА RHEL 7/CentOS 7
- Установите и настройте GitLab CE в Debian
- Установите GitLab на Rocky Linux 8 с помощью Let’s Encrypt