Встала задача перенести gitlab на новый сервер. Описаний как делать бекап и как его восстанавливать в сети достаточно. Официальная документация тоже достаточно полная. Но я словил один баг, который не описан. Спешу поделиться. Жаль, если Вы прочтете его и будет уже поздно. Главное сохранять оригинальные файлы конфигурации...
Итак.
Весь процесс сводится к тому, что на новый instance нужно поставить gitlab такой же версии, в какой был сделан бекап. Затем заменить файлы конфигураций на новом instance в папке /etc/gitlab
файлами со старого сервера. Затем остановить сервисы gitlab , которые взаимодействуют с базой (puma, sidekiq) и после этого восстановить бекап. Сказано сделано. Однако, по старой привычке я сохранил файлы конфигурации оригинальной чистой установки gitlab на новом сервере, все что было в папке /etc/gitlab
Вроде запустились, все красиво заработало. Зарегистрировали раннеров, проверили пайплайны и сделали пуш. Получили ошибку 401 Unauthorized
. Причем пулл сделать дает и авторизация проходит нормально. То есть с пользователями все в порядке. Гугл и несколько статей вывели на интересное решение. Нам нужен файл /etc/gitlab/gitlab-secrets.json
, после чистой установки на новую машину, который был сохранен по привычке... Нужно взять из него значение поля gitlab_shell -> secret_token
и вставить его вместо такого же значения в файле /etc/gitlab/gitlab-secrets.json
, который мы перенесли со старого instance . После этого делаем gitlab-ctl reconfigure
и радуемся...
Так что, храните деньги в сбере... копируйте оригинальные файлы всегда перед тем, как их заменить... Жаль что это обычно читаешь, когда уже получил ошибку и файлы мог не сохранить...