Ответ 1
Вам понадобится также переместить конфигурацию ssh:
~/.ssh/authorized_keys
Это файл, используемый SSH и настроенный Gitolite, чтобы:
- список всех разрешенных открытых ключей
- связал его с принудительная команда script
- передать правильное имя пользователя в гитолит script
См. " Как Gitolite использует ssh"
OP подтверждает, что это проблема, и указывает на документацию 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;
- скопируйте содержимое
$REPO_BASE
на старом сервере на$REPO_BASE
на новом сервере.
По умолчанию, как вы знаете, это как$HOME/repositories
.chown -R
файлы правильному пользователю, если вы скопировали с помощью root.- исправить крючки
gl-setup
- запустить push-репозиторий
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