GitLab: настройка резервного копирования в Debian, Ubuntu и CentOS

В данной статье рассмотрим настройку резервного копирования средствами самого GitLab CE/EE. Резервируются все репозитории, все вложения и база данных.

Предварительно у вас должен быть установлен и настроен GitLab. Статья по установке и настройке доступна по ссылке ниже.

Установка дополнительных утилит

Установите необходимое программное обеспечение для работы резервного копирования:

Debian/Ubuntu

 apt-get install rsync 

CentOS

 yum install rsync 

Утилита tar нужна для создания архивов и распаковки. Проверьте версию tar (должна быть 1.30 или выше):

tar --version

Настройка резервного копирования

Создавать резервные копии можно командой

  gitlab-backup create 

Будет создана резервная копия следующих данных:

  • база данных;
  • вложения;
  • данные репозиториев;
  • лог файлы;
  • страницы.

Добавьте следующую строку в cron, чтобы резервное копирование выполнялось по расписанию:

 0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1 

Данная задача будет выполняться в 2 часа ночи по серверному времени. Вы можете указать другое время для выполнения задачи (удобное для вас).

Резервные копии по умолчанию будут сохраняться в директории /var/opt/gitlab/backups/. Архивы имеют расширение файла tar. Наименование файлов 11493107454_2018_04_25_10.6.4-ce_gitlab_backup содержит следующую информацию: 11493107454 — EPOCH timestamp , 2018_04_25 — дата, 10.6.4-ce_gitlab — версия gitlab.

Восстановление из резервной копии

Поместите требуемую резервную копию в директории /var/opt/gitlab/backups/, если вы выполняли перемещение резервных копий на удаленное хранилище. Например, командой cp, если резервная копия доступна на этом же хосте:

 cp 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar /var/opt/gitlab/backups/ 

Вместо 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar укажите имя вашего архива.

Установите корректные права на файл архива командой chown:

chown git:git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar 

Остановите службы GitLab перед восстановлением данных из архива:

gitlab-ctl stop unicorn 
gitlab-ctl stop sidekiq

Убедитесь, что службы действительно остановлены:

 gitlab-ctl status 

Для восстановления из резервной копии используйте команду restore:

 gitlab-backup restore BACKUP=1493107454_2018_04_25_10.6.4-ce 

Вместо «1493107454_2018_04_25_10.6.4-ce» укажите имя вашего архива.

После завершения восстановления запустите службы GitLab:

gitlab-ctl start sidekiq
gitlab-ctl start unicorn

В данной статье резервное копирование выполняется только для данных GitLab, файлы конфигурации GitLab, размещенные в /etc не резервируются. Если вам требуется осуществлять резервное копирование системы, обратитесь к нашей статье, которая показывает как выполнить резервное копирование файлов и каталогов хоста: