Перейти к содержанию

Бэкапирование и восстановление GitFlic

Внимание!

  • Бэкапирование находится в стадии Beta тестирования!
  • В работе GitFlic CLI, связанной с бэкапированием и восстановлением могут присутствовать баги!
  • О найденных багах и/или предложениях сообщайте на почту support@gitflic.ru

Общая информация

GitFlic CLI, начиная с версии 4.0.0, предоставляет возможность создания и восстановления резервных копий вашей инсталляции GitFlic.

Предварительные условия

Перед использованием GitFlic CLI убедитесь, что:

1. Инстанс GitFlic запущен и находится в рабочем состоянии

2. GitFlic CLI запускается от пользователя, у которого есть права на чтение и запись:

  • Статических директорий GitFlic (/var/gitflic/)
  • Базы данных GitFlic

3. GitFlic CLI запускается на сервере c предустановленными утилитами pg_dump и pg_restore (обычно устанавливаются вместе с PostgreSQL)

Проверить наличие данных утилит в системе вы можете следующими командами:

which pg_dump
which pg_restore

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

4. В конфигурационный файл GitFlic (application.properties) добавлен параметр с расположением утилит pg_restore и pg_dump:

gitflic.backup.pg_util-path=/usr/bin

Запуск GitFlic CLI

1. Распакуйте архив с ПО GitFlic в любую удобную директорию

unzip gitflic_4.0.0_free_onpremise.zip

2. Перейдите в директорию cli внутри распакованного архива

cd /path/to/arhive/cli

3. Сделайте скрипт gitflic-cli.sh исполняемым

chmod +x ./gitflic-cli.sh

4. Для запуска GitFlic CLI воспользуйтесь следующей командой, добавив в качестве опции путь до конфигурационного файла вашего инстанса GitFlic:

./gitflic-cli.sh /путь/до/application.properties

Сервисный режим

Перед созданием или восстановлением бэкапа сервис автоматически переводится в сервисный режим.

Однако, вы можете вручную включать или отключать сервисный режим.

Включение сервисного режима

service mode start

После запуска команды:

  • Сервис остановит все активные соединения
  • Сервис не сможет принимать HTTP(S) запросы
  • SSH соединение будет не доступно
  • Все обработчики сообщений (listeners) будут остановлены
  • Задачи по рассписанию будут пропущены

Ожидаемый результат в логах:

Сервисный режим активирован

Выключение сервисного режима

service mode stop

Ожидаемый результат в логах:

Сервисный режим деактивирован

Создание резервной копии

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

backup

По умолчанию архив с бэкапом будет сохранен в ту же директорию, в которой расположен GitFlic CLI.

Вы также можете явно указать путь для сохранения бэкапа:

backup /путь/для/сохранения/

Обратите внимание!

  • Убедитесь, что у пользователя, от которого запускается GitFlic CLI, есть права на запись в указываемую директорию.
  • В связи с политикой безопасности, при бэкапировании не сохраняются RSA и SSH ключи, а также конфигурационный файл application.properties.

Ожидаемый результат:

  • Перевод GitFlic в сервисный режим
  • Создание бэкапов директорий и базы данных
  • После завершения в консоли выводится путь до архива в формате .tar.gz

Пример вывода в логах:

Активация сервисного режима 
Сервисный режим активирован
Запуск резервного копирования
___________________________________
Результаты резервного копирования
___________________________________
|rsa_public_key |NOT_FOUND_SKIPPED|
|rsa_private_key|NOT_FOUND_SKIPPED|
|audit          |NOT_FOUND_SKIPPED|
|releases       |SUCCESS          |
|images         |SUCCESS          |
|cicd           |SUCCESS          |
|registry       |SUCCESS          |
|repository     |SUCCESS          |
|ssh_cert       |SUCCESS          |
|database       |SUCCESS          |
___________________________________
Деактивация сервисного режима
Сервисный режим деактивирован

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

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

restore /путь/до/бэкапа.tar.gz

Внимание: Это действие перезапишет текущее состояние GitFlic!

Ожидаемый результат:

  • GitFlic временно перейдёт в сервисный режим
  • Выполнится распаковка и восстановление данных
  • После успешного восстановления сервис вернётся к состоянию, в котором был на момент создания бэкапа

Пример вывода:

Активация сервисного режима
Сервисный режим активирован
Распаковка архива
Распаковка архива завершена
releases : SUCCESS
images : SUCCESS
cicd : SUCCESS
registry : SUCCESS
repository : SUCCESS
ssh_cert : SUCCESS
database : SUCCESS
Деактивация сервисного режима
Сервисный режим деактивирован

Рекомендации

  • Регулярно делайте резервные копии для обеспечения сохранности данных
  • Храните резервные копии на внешнем сервере или отдельном носителе, чтобы избежать потери данных при сбое основного сервера