GitLab - это веб-инструмент для управления репозиториями Git, представляющий собой полноценную платформу DevOps, позволяющую командам легко сотрудничать над проектами. Это приложение с открытым исходным кодом, предлагающее различные функции, такие как непрерывная интеграция/непрерывное развертывание (CI/CD), контроль версий и отслеживание проблем. С помощью GitLab разработчики могут управлять своим кодом, сотрудничать с членами команды и оптимизировать рабочие процессы в одном месте, что делает его популярным выбором для многих команд разработчиков.
Особенности GitLab Community Edition
Преимущества GitLab Community Edition, бесплатной версии GitLab, включают:
- Полноценная платформа DevOps: GitLab представляет собой универсальную платформу для разработки программного обеспечения - от планирования до развертывания.
- Удобство совместной работы: GitLab упрощает совместную работу членов команды, предоставляя инструменты для обзора кода, запросов на слияние и отслеживания проблем.
- Встроенный CI/CD: GitLab предоставляет автоматизированный конвейер CI/CD, который помогает разработчикам легко тестировать, собирать и развертывать свой код.
- Настройка: GitLab предоставляет различные возможности настройки, такие как настраиваемый пользовательский интерфейс, шаблоны проектов и пользовательские рабочие процессы.
- Открытый исходный код: GitLab Community Edition позволяет разработчикам изменять кодовую базу и вносить в нее свой вклад.
По сравнению с другими версиями GitLab, Community Edition предоставляет ограниченный набор функций, но все же является мощным инструментом для управления проектами разработки ПО. Корпоративные версии предоставляют более широкие возможности, такие как расширенная аналитика, аварийное восстановление и средства безопасности.
В следующем руководстве будет показано, как установить GitLab на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster, используя терминал командной строки и официальный репозиторий GitLab для последней версии. Также будут показаны некоторые базовые конфигурации для начала работы.
Обновление Debian
Поддержание операционной системы Debian в актуальном состоянии очень важно для поддержания её стабильности и безопасности. Чтобы убедиться в том, что все существующие пакеты в вашей системе Debian актуальны, рекомендуется выполнить обновление, которое предоставляет последние обновления безопасности и исправления ошибок, обеспечивая стабильность и надёжность вашей системы. Вы можете легко обновить свою операционную систему Debian, выполнив следующую команду:
1 | sudo apt update && sudo apt upgrade |
Установка необходимых пакетов
Убедиться в том, что все зависимости для GitLab установлены, - важнейший этап процесса установки. Эти зависимости являются необходимыми компонентами, на которые опирается GitLab для корректной работы. К счастью, установка этих зависимостей - простой процесс. Вы можете легко установить их, открыв терминал и выполнив следующую команду:
1 | sudo apt install curl ca-certificates apt-transport-https tzdata perl |
Импорт репозитория GitLab
По умолчанию GitLab не доступен в стандартных репозиториях Debian. Это означает, что для установки GitLab вы должны создать репозиторий вручную. Однако GitLab предоставляет APT-скрипт для помощи в этом процессе, облегчая пользователям установку платформы. С помощью этого скрипта можно создать репозиторий GitLab и установить GitLab с помощью стандартного менеджера пакетов APT.
Чтобы загрузить скрипт, введите в терминале следующую команду:
1 | curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash |
После выполнения этой команды сценарий загрузит и добавит репозиторий GitLab в вашу систему Debian. Он также обновит список пакетов, что позволит вам установить GitLab с помощью стандартного менеджера пакетов APT.
Пример вывода терминала из сценария bash, импортирующего GitLab в Debian:
Установка Gitlab CE в Debian Linux
Следующим шагом является установка GitLab. Помните, что сценарий уже использовал команду "apt update" для синхронизации вновь созданного и измененного репозитория. Теперь можно приступить к выполнению команды установки, выполнив следующие действия:
1 | sudo apt install gitlab-ce |
Эта команда установит GitLab Community Edition (CE), бесплатную версию GitLab с открытым исходным кодом. Процесс установки может занять некоторое время, зависящее от скорости Интернета и технических характеристик системы.
Пример вывода при успешной установке GitLab на Debian:
Настройка GitLab
Чтобы настроить GitLab на Debian, необходимо тщательно выполнить несколько шагов. В этом разделе мы пошагово опишем этот процесс, включая настройку имени хоста, установку брандмауэра и настройку параметров электронной почты.
Настройка имени хоста
Для доступа к экземпляру GitLab очень важно настроить имя хоста для сервера GitLab, поэтому выбирайте имя, которое легко запомнить и к которому легко получить доступ. Для настройки имени хоста выполните следующие действия:
Откройте файл конфигурации GitLab с помощью текстового редактора:
1 | sudo nano /etc/gitlab/gitlab.rb |
Найдите параметр external_url и замените пример URL на желаемое имя хоста:
1 | external_url 'https://gitlab.example.com' |
Сохраните файл и выйдите из текстового редактора.
Переконфигурируйте GitLab для применения изменений:
1 | sudo gitlab-ctl reconfigure |
Настройка брандмауэра
По умолчанию GitLab использует порт 80 для HTTP и порт 443 для HTTPS. Чтобы обеспечить доступ к экземпляру GitLab, необходимо настроить брандмауэр таким образом, чтобы он разрешал трафик по этим портам. Для настройки брандмауэра выполните следующие действия:
Откройте файл конфигурации брандмауэра с помощью текстового редактора:
Во-первых, установите брандмауэр UFW, так как он не установлен в Debian по умолчанию, следующей командой:
1 | sudo apt install ufw |
Затем, после завершения установки, включите брандмауэр UFW следующей командой:
1 | sudo ufw enable |
Откройте файл конфигурации брандмауэра с помощью текстового редактора:
1 | sudo nano /etc/ufw/applications.d/gitlab |
Скопируйте и вставьте в файл следующие строки:
1 2 3 4 | [GitLab] title=GitLab description=GitLab application ports=80,443/tcp |
Сохраните файл и выйдите из текстового редактора.
Включите приложение GitLab в брандмауэре:
1 2 | sudo ufw app update GitLab sudo ufw allow GitLab |
Настройка параметров электронной почты
Для информирования пользователей о действиях в проекте, таких как новые проблемы, запросы на объединение и комментарии, в GitLab используются уведомления по электронной почте. Для настройки параметров электронной почты выполните следующие действия:
Откройте файл конфигурации GitLab с помощью текстового редактора:
1 | sudo nano /etc/gitlab/gitlab.rb |
Найдите параметр gitlab_rails['smtp_enable'] и установите для него значение true:
1 | gitlab_rails['smtp_enable'] = true |
Добавьте в файл следующие строки, чтобы настроить параметры SMTP-сервера для вашего почтового провайдера, например Gmail:
1 2 3 4 5 6 7 | gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_password'] = "your_password" gitlab_rails['smtp_domain'] = "smtp.gmail.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true |
Сохраните файл и выйдите из текстового редактора.
Переконфигурируйте GitLab для применения изменений:
1 | sudo gitlab-ctl reconfigure |
Важно отметить, что после выполнения команды "gitlab-ctl reconfigure" в выводе терминала может появиться следующее сообщение:
1 2 3 4 5 | 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. |
Чтобы просмотреть пароль root (GitLab), выполните в терминале следующую команду:
1 | sudo cat /etc/gitlab/initial_root_password |
Выполнение этой команды выведет в терминал пароль root. Очень важно хранить этот пароль в безопасности и не сообщать его неавторизованным пользователям.
Если необходимо сбросить пароль root, можно воспользоваться следующей командой:
1 | sudo gitlab-rake "gitlab:password:reset[root]" |
После выполнения этой команды пароль root будет сброшен на случайную строку, отображаемую в выводе терминала. Важно помнить, что сброс пароля root приведет к аннулированию всех существующих и персональных токенов доступа, поэтому после сброса пароля пользователям придется создавать новые.
В целях безопасности рекомендуется как можно скорее после первоначальной установки сменить пароль root на надежный и уникальный и не использовать пароль по умолчанию. Изменить пароль можно, войдя в веб-интерфейс GitLab, перейдя в раздел "Настройки пользователя"> "Учетная запись" и выбрав опцию "Изменить пароль".
Доступ к пользовательскому интерфейсу GitLab
После завершения настройки бэкенда необходимо войти в систему и получить доступ к GitLab. Для этого откройте путь к домену, назначенный GitLab в конфигурационном файле.
https://gitlab.example.com
Далее используйте имя пользователя "root" и пароль, полученный при установке, для входа в GitLab. Как уже упоминалось в распечатке паролей в предыдущем разделе, на рисунке пароль руководства был "4zB2mbBLCcRLRAkv3qHfmSZULJ/6ocJNe2XK8zNx9nU=".
Пример:
Вы успешно вошли в систему под учетной записью root и попали на целевую страницу по умолчанию.
Ниже приведены некоторые рекомендации по защите, настройке и другие общие советы при первом входе в пользовательский интерфейс GitLab:
- Изменение пароля по умолчанию: Для повышения безопасности вашего экземпляра GitLab очень важно изменить пароль по умолчанию пользователя root. Войдите в GitLab, используя имя пользователя и пароль по умолчанию, перейдите в раздел " User Settings"> "Password" и введите новый пароль.
- Настройте двухфакторную аутентификацию (2FA): Добавление фактора аутентификации, например кода, отправленного на телефон или сгенерированного приложением, к процессу входа в систему является дополнительным уровнем безопасности, обеспечиваемым 2FA. Чтобы включить 2FA в GitLab, перейдите в раздел " User Settings"> "Account"> "Two-Factor Authentication" и следуйте инструкциям.
- Создайте проект: Чтобы создать новый проект в GitLab, перейдите на страницу "Проекты" и нажмите кнопку "Новый проект". Вы можете создать пустой проект или импортировать существующий проект из Git-репозитория.
- Настройка пользовательского интерфейса: GitLab предоставляет несколько возможностей настройки, таких как изменение темы, добавление логотипа и настройка панели навигации. Перейдите в раздел "Admin Area"> "Settings" и выберите нужные опции для настройки пользовательского интерфейса.
- Настройка управления доступом: Мощные функции управления доступом GitLab позволяют контролировать, кто и что может делать в ваших проектах. Перейдите в раздел " Project Settings"> "Members" и добавьте или удалите участников с различными уровнями доступа, чтобы настроить управление доступом.
- Использование GitLab CI/CD: Мощные возможности GitLab в области CI/CD позволяют автоматизировать тестирование и развертывание кода. Настройте CI/CD-конвейеры, создав в корневом каталоге проекта файл ".gitlab-ci.yml" и определив в нем этапы и задания для вашего конвейера.
- Настройте GitLab Runner: GitLab Runner - это легкий агент, который выполняет задания CI/CD и отправляет результаты обратно в GitLab. Следуйте инструкциям в документации GitLab для установки и настройки GitLab Runner на вашей системе Debian.
- Резервное копирование экземпляра GitLab: Регулярно создавайте резервные копии экземпляра GitLab, чтобы предотвратить потерю данных в случае аппаратного сбоя или других катастроф. Выполните команду "gitlab-rake gitlab:backup:create" в терминале, чтобы создать резервную копию экземпляра GitLab.
Создание Cronjob для автоматического резервного копирования GitLab
Настройка cronjob для автоматического резервного копирования GitLab в Debian важна для обеспечения безопасности и сохранности ваших данных. cronjob - это запланированное задание, которое автоматически запускается через определённые промежутки времени для выполнения резервного копирования экземпляра GitLab. Выполните следующие шаги, чтобы создать cronjob для автоматического резервного копирования GitLab на Debian.
Создание сценария резервного копирования
Для начала необходимо создать сценарий резервного копирования, который будет выполнять резервное копирование экземпляра GitLab. Для этого выполните следующие действия:
Используя текстовый редактор, создайте новый файл для сценария резервного копирования. Вот пример:
1 | sudo nano /usr/local/bin/gitlab-backup.sh |
Вставьте в файл следующий код:
1 2 3 4 5 6 7 8 | #!/bin/bash BACKUP_DIR=/var/opt/gitlab/backups TIMESTAMP=$(дата +%s) sudo gitlab-rake gitlab:backup:create sudo cp ${BACKUP_DIR}/$(ls -t ${BACKUP_DIR} | head -1) ${BACKUP_DIR}/gitlab_backup_${TIMESTAMP}.tar |
Сохраните файл и выйдите из текстового редактора.
Этот сценарий создаст резервную копию экземпляра GitLab, выполнив команду gitlab-rake gitlab:backup:create. После создания резервной копии он продублирует последнюю резервную копию в новый файл с временной меткой в имени файла.
Установка разрешений и прав
На следующем этапе необходимо установить соответствующие разрешения и права собственности для сценария резервного копирования, чтобы cronjob мог его выполнить. Для этого выполните следующие действия:
Установите владельцем сценария резервного копирования пользователя, связанного с GitLab:
1 | sudo chown git:git /usr/local/bin/gitlab-backup.sh |
Установите права доступа к сценарию резервного копирования, чтобы разрешить его выполнение:
1 | sudo chmod +x /usr/local/bin/gitlab-backup.sh |
Создание Cronjob
Чтобы запланировать запуск сценария резервного копирования через регулярные промежутки времени, необходимо создать cronjob. Для этого выполните следующие действия:
Чтобы открыть файл конфигурации crontab для пользователя GitLab, выполните следующие действия:
1 | sudo crontab -u git -e |
Чтобы запланировать запуск сценария резервного копирования на каждый день в 1:00 утра, добавьте следующую строку в конфигурационный файл crontab для пользователя GitLab:
1 | 0 1 * * * /path/to/backup/script.sh |
Сохраните файл и выйдите из текстового редактора.
Этот cronjob будет автоматически выполнять сценарий резервного копирования каждый день в 1:00 утра, в результате чего будет создан новый файл резервного копирования с временной меткой в имени файла.
Тестирование программы Cronjob
Проверить правильность работы cronjob можно, выполнив вручную сценарий резервного копирования и убедившись, что файл резервной копии создан без ошибок. Для этого введите в терминале следующую команду:
1 | sudo /usr/local/bin/gitlab-backup.sh |
Эта команда сгенерирует новый файл резервной копии в каталоге "/var/opt/gitlab/backups". Имя файла будет содержать временную метку, указывающую на время создания резервной копии.
Терминальные команды GitLab
GitLab-ctl - это инструмент командной строки, позволяющий управлять GitLab на Debian. Он предоставляет набор команд терминала, которые можно использовать для запуска, остановки, перезапуска и управления службами GitLab, а также для других целей. Здесь представлен подробный раздел о терминальных командах GitLab-ctl, а также примеры команд и выводов с пояснениями.
Запуск и остановка служб GitLab
Для запуска и остановки служб GitLab используйте следующие команды:
Запустить все службы GitLab:
1 | sudo gitlab-ctl start |
Остановить все службы GitLab:
1 | sudo gitlab-ctl stop |
Перезапустить все службы GitLab:
1 | sudo gitlab-ctl restart |
Перезагрузить службы GitLab:
1 | sudo gitlab-ctl reload |
Эти команды запускают, останавливают, перезапускают или перезагружают все службы GitLab. В выводе будет указано, какие службы запускаются или останавливаются, а также успешность выполнения операции.
Проверка состояния служб GitLab
Чтобы проверить состояние служб GitLab, выполните следующую команду:
1 | sudo gitlab-ctl status |
Эта команда запустит, остановит, перезапустит или перезагрузит все службы GitLab. После выполнения команды в выводе будет показано, какие службы были затронуты и была ли операция успешной.
Резервное копирование и восстановление данных GitLab
Создать резервную копию данных GitLab можно с помощью следующей команды:
Создать резервную копию данных GitLab:
1 | sudo gitlab-rake gitlab:backup:create |
В результате выполнения этой команды будет создан файл резервной копии, содержащий все данные GitLab, такие как репозитории, данные пользователей и файлы конфигурации. Файл резервной копии будет храниться в каталоге: "/var/opt/gitlab/backups".
Восстановление резервной копии данных GitLab:
1 | sudo gitlab-rake gitlab:backup:restore BACKUP=<файл_резервной копии> |
С помощью этой команды можно восстановить резервную копию данных GitLab из определенного файла резервной копии. Файл резервной копии должен находиться в каталоге "var/opt/gitlab/backups", либо можно указать полный путь к файлу резервной копии.
Проверка конфигурации GitLab
Для проверки конфигурации GitLab можно использовать следующую команду:
1 | sudo gitlab-rake gitlab:check |
Эта команда позволяет проверить конфигурацию GitLab на наличие ошибок и предупреждений, включая устаревшие версии, отсутствие зависимостей и неверно настроенные параметры. В выводе будут представлены результаты сканирования и подробная информация о всех обнаруженных проблемах.
Проверка журналов GitLab
Ниже описано, как проверить журналы GitLab с помощью следующих команд:
Просмотр журналов GitLab:
1 | sudo gitlab-ctl tail gitlab-rails/production.log |
С помощью следующей команды можно просмотреть последние 10 строк производственного журнала GitLab, в которых подробно описаны действия пользователей, предупреждения и ошибки.
Просмотр журналов GitLab NGINX:
1 | sudo gitlab-ctl tail nginx/gitlab_access.log |
Эта команда покажет последние 10 строк журнала доступа GitLab NGINX, содержащего подробную информацию о HTTP-запросах и ответах.
Просмотр журналов GitLab PostgreSQL:
1 | sudo gitlab-ctl tail postgresql/current |
Эта команда отобразит последние 10 строк журнала GitLab PostgreSQL, содержащего информацию о запросах к базе данных и транзакциях.
Заключение
В заключение следует отметить, что управление и настройка GitLab в Debian Linux требует тщательного выполнения нескольких шагов. Сюда входит настройка брандмауэра, конфигурирование параметров SMTP-сервера, создание cronjob для автоматического резервного копирования, а также использование команд GitLab-ctl для запуска, остановки и перезагрузки служб GitLab. Обеспечение безопасности, настройка и использование функций GitLab, таких как создание проекта, использование GitLab CI/CD и настройка контроля доступа, могут значительно улучшить работу с GitLab. Следуя шагам, описанным в данном руководстве, и используя мощные функции и инструменты GitLab, вы сможете создать надежную и безопасную среду для управления кодом и совместной работы с другими пользователями.