Вам также потребуется переместить конфигурацию ssh:
~/.ssh/authorized_keys
Это файл, используемый SSH и сконфигурированный Gitolite для:
- перечисления всехавторизованный открытый ключ
- связал его со скриптом принудительной команды
- и передал правильное имя пользователя скрипту gitolite
Смотрите " Как Gitolite использует ssh"
ОП подтверждает возникшую проблему и указывает на документацию Gitolite:
" , перемещая все это изодин сервер другому ":
(примечание: это для 'g2'; т.е. Gitolite V2 , но идея аналогична для Gitolite V3 или 'g3')
Идея этого процесса состоит в том, чтобы создать новый экземпляр Gitolite, а затем выдвинуть существующее хранилище Gitolite, которое автоматически переопределит все ваши текущие существующие ключи на вашем новом сервере ~/.ssh authorized_keys
для вас.
- установка гитолита.Не беспокойтесь о pubkey, используемом в шаге gl-setup - например, это подойдет:
ssh-keygen -q -N '' -f dummy
gl-setup -q dummy.pub
- отредактируйте файл rc так, чтобы он имелнастройки, аналогичные старым.
- Не копируйте весь файл напрямую - некоторые переменные (особенно
GL_PACKAGE_CONF
и GL_PACKAGE_HOOKS
) зависят от установки и не должны быть затронуты!
Сделайтеdiff
или vimdiff
и скопируйте только то, что вы изменили на старом сервере. - отключите старый сервер, чтобы ваши пользователи не вносили в него никаких изменений.
Существует несколько способов.чтобы сделать это, но самое простое - вставить эту строку вверху ~/.gitolite.rc
на старом сервере:
exit 1;
- скопировать содержимое *От 1065 * на старом сервере до
$REPO_BASE
на новом сервере.
По умолчанию, как вы знаете, это оба $HOME/repositories
. chown -R
файлов для правильного пользователя, если вы скопировалииспользуя root. - исправление хуков
gl-setup
- вызывает толчок к объявлениюмин репо
git clone repositories/gitolite-admin.git /tmp/gitolite-admin
cd /tmp/gitolite-admin
git commit --allow-empty -m 'trigger compile on new server'
gl-admin-push -f