Удельта

Как проверить восстановление Gitea из резервной копии restic

Проверьте восстановление Gitea из restic на отдельном сервере. Верните не только код, но и пользователей, задачи, вложения и настройки. Затем войдите обычным аккаунтом и отправьте учебное изменение. Измеряйте время до возобновления работы команды: наличие файлов в копии ещё не подтверждает исправность сервиса.

Репозиторий с историей изменений переносится из защищённой копии на чистый сервер

Что подготовить

  • Отдельную учебную Gitea с репозиторием, задачей, вложением и пользователями разных прав.
  • Хранилище restic и доступ к паролю независимо от исходного сервера.
  • Чистый тестовый сервер, изолированный от рабочей почты и внешних систем.

Подготовьте данные для проверки #

Создайте учебный проект с двумя сохранёнными изменениями кода, отдельной веткой и предложением включить её в основную версию. Добавьте задачу с комментарием и вложением. Такой набор поможет заметить потерю данных после восстановления.

  • Код. Запишите номер последнего сохранённого изменения — коммита. Он поможет сравнить версии до и после восстановления.

  • Задачи и файлы. Запишите число задач, текст комментария и контрольную сумму вложения — значение, по которому проверяют совпадение файлов.

  • Права. Подготовьте обычного пользователя с разрешением изменять код и отдельного пользователя только для чтения.

Если проект хранит большие файлы через Git LFS или во внешнем хранилище, добавьте такой файл в проверку. Запишите, где он лежит. Копия репозитория не должна незаметно исключить данные, нужные команде.

Сохраните полную копию Gitea #

Для согласованной копии остановите запись и Gitea на учебном сервере. Иначе база, код и вложения могут попасть в копию в разные моменты. Администратор должен сохранить базу в поддерживаемом формате и проверить, как её вернуть.

Сохраните подготовленные данные через restic. Запишите номер выбранной копии: в restic она называется снимком (snapshot). Рядом оставьте дату, версии программ и список сохранённых частей — так при восстановлении не придётся угадывать.

  • База данных. Пользователи, задачи, комментарии и связи между ними.

  • Файлы. Репозитории, вложения и отдельно используемые большие файлы.

  • Настройки и доступ к копии. Конфигурация Gitea, нужные ключи и способ получить пароль хранилища restic.

Пароль копии должен быть доступен ответственному даже при потере исходного сервера. Секретные значения не помещайте в общий отчёт. Запишите только, где уполномоченный сотрудник их получит.

Часть GiteaПроверкаКакой результат нужен
БазаПользователь, задача и комментарийДанные и связи на месте
КодПолучение репозитория и номер коммитаВерсия совпадает с исходной
ВложениеОткрытие и контрольная суммаФайл доступен и не изменился
Работа после восстановленияОтправка новой ветки и отказ без правИзменения принимаются по установленным правилам

Восстановите на отдельном сервере #

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

Восстановите выбранный снимок restic в отдельную папку и сверьте список файлов. Затем администратор возвращает базу, репозитории, вложения и настройки, проверяет владельцев файлов и пути. Не заменяйте этим опытом единственную рабочую установку.

Если изменились пути программы или способ установки, пересоздайте служебные обработчики Git (hooks) по руководству Gitea. Они запускаются при операциях с кодом. Адрес, почту и внешние связи настройте для тестового сервера.

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

Порядок проверки

  1. Создайте учебный проект, задачи, вложение и пользователей; запишите данные для сравнения.
  2. Остановите запись и Gitea, сохраните базу, репозитории, файлы и настройки.
  3. Запишите номер снимка restic и восстановите его на отдельном тестовом сервере.
  4. Верните базу и файлы, проверьте пути, владельцев и служебные обработчики Git.
  5. Проверьте вход, задачи, вложения, получение кода и отправку новой учебной ветки.
  6. Запишите время восстановления и исправьте найденные пробелы в копии или инструкции.

Проверьте обычную работу команды #

Войдите обычным пользователем, найдите задачу и комментарий, откройте вложение. Сравните файл по контрольной сумме. Затем получите код из восстановленного репозитория командой clone и сверяйте номер последнего коммита с записанным ранее.

  • Разрешённое изменение работает. Создайте учебную ветку и отправьте её командой push — передачей изменений на сервер.

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

  • Команда может продолжить работу. Нужны вход, задачи, вложения и работа с кодом, а не просто открывшаяся главная страница.

Отсчитывайте восстановление от объявления потери сервера до успешной учебной задачи. Запишите также ожидание пароля и доступа к копии. Проверка целостности restic полезна, но отдельно не подтверждает работу Gitea.

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

Как записать результат #

Сохраните номер копии, версии, список данных и время каждого этапа восстановления. Для пользователей, задач, вложений и кода отметьте совпадения и ошибки. Пароли и закрытые ключи оставьте в защищённом месте.

В конце перечислите, что нужно исправить: состав копии, получение доступа, инструкцию или права. Назначьте ответственного и повторную проверку. Хороший итог — другой сотрудник понимает порядок и может выполнить его без устного пересказа.

Что подтверждает рабочее восстановление

  • Пользователи, задачи, комментарии, код и вложения совпали с исходными данными.
  • Команда может не только читать, но и выполнять разрешённые изменения.
  • Известны состав копии и безопасный способ получить доступ к ней.
  • Записано фактическое время и назначены исправления обнаруженных ошибок.

Материал был полезен?

Сообщить об ошибке или задать вопрос редакции

Сообщение увидит редакция. Не указывайте пароли и личные данные. Текст удаляется через 180 дней.

О материале

Практика УдельтыРуководствоЗадача: поддерживатьУровень: практикаGitearestic

Последнее обновление:

Обсуждение

Комментарии проходят подтверждение адреса и проверку редакцией.