В данной статье рассмотрим настройку резервного копирования средствами самого 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 не резервируются. Если вам требуется осуществлять резервное копирование системы, обратитесь к нашей статье, которая показывает как выполнить резервное копирование файлов и каталогов хоста: