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

Восстановление GitLab из резервной копииВосстановление GitLab из резервной копии делится всего на два этапа — восстановление конфигурации и восстановление данных. Первый этап вы должны сделать вручную, второй делается встроенными средствами GitLab. Также важно не забыть о подготовке окружения, на котором будет выполняться восстановление.

Об этом я и расскажу в статье, но помимо этого, не забывайте про официальную документацию 1 2 3.


Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.


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

Если вдруг возникла необходимость развернуть бэкапы на новом сервере, то обкатанный сценарий disaster recovery под рукой окажется как нельзя кстати.

Все будет ещё проще, если вы настраивали регулярное резервное копирование GitLab по моей недавней статье (или близко к ней) — Резервное копирование GitLab.

Исходный и целевой серверы

Чтобы восстановление прошло максимально просто и быстро, ваш новый сервер по своим настройкам (хранилище, сеть, имя и т.п.) должен максимально походить на старый сервер.

Настройки моего окружения можно увидеть в статьях:

Ну а теперь к делу.

Подготовка окружения

Поскольку GitLab имеет встроенные средства резервного копирования и восстановления, на новом сервере необходимо сначала развернуть чистый GitLab, что мы и делаем.

Ставим пререквизиты:

В процессе установки настройки постфикса оставляем по умолчанию.

Находим нужную версию gitlab в архиве APT/YUM repository for GitLab Community Edition packages.

Примечание: ранее в статьях я отмечал нюанс, что восстановить бэкап GitLab вы сможете только на той версии, на которой он снимался.

Свою версию я нашел — gitlab-ce_8.16.4-ce.0_amd64.deb

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

Выполняем инструкции, описанные на сайте в разделе Install this Package, а именно:

Успешное выполнение скрипта завершается сообщением: The repository is setup! You can now install packages.

После этого ставим Gitlab:

Запускаем начальную конфигурацию (на новом сервере, на который планируется восстановить данные, это нужно сделать хотя бы один раз):

Теперь нужно накатить бэкап на свежий сервер.

Восстановление

Перед выполнением восстановления вам необходимо скопировать бэкап на целевой сервер. Резервная копия в моем случае состоит из двух файлов — архива конфигурации, сделанного вручную и архива данных, сделанного встроенными средствами GitLab.

Предположим оба архива уже находятся на сервере.

Примечание: если резервное копирование вы настраивали по моей статье, то для копирования бэкапов на новый сервер вам нужно проделать ряд шагов (параметры команд взяты для примера).

Установить пакет cifs-utils:
apt-get install cifs-utils
Смонтировать удаленное хранилище:
mount.cifs //storage/backup /mnt/backup01 -o credentials=/home/bissquit/gitlab_backup_credentials,uid=<git_user_uid>,gid=<git_user_gid>
.

Разархивируем файлы конфигурации (в зависимости от того как вы делали архив, в вашем случае команда может отличаться):

Скопируем архив данных в хранилище (по умолчанию /var/opt/gitlab/backups):

Примечание: учетной записи git должны быть выданы права на чтение файла. На момент восстановления вы можете установить права 777, а после восстановления просто удалите бэкап.

Как только все файлы лежат по своим местам, останавливаем сервисы:

На всякий случай проверяем их статус:

Выполняем восстановление:

где 1493694108_2017_05_02 — префикс архива данных GitLab.

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

Если все прошло успешно, увидите что-то подобное в самом конце:

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

Запускаем и проверяем:

После этого восстановление можно считать завершенным, но требуется как минимум проверить корректность работы сервиса.

comments powered by HyperComments