Перемещение гитолит-сервера

У меня есть рабочий гитолит-сервер. Однако я хочу переместить его в идентичную конфигурацию, но на более крупную машину. Несмотря на то, что у меня есть гитолит, я не уверен в строках под ним. В основном его отношения с ssh.

Я хотел бы просто установить пакеты gitolite, git -core. И переместите каталоги репозитория для пользователя git. Ни один из ключей не должен меняться. Это верно? каковы настройки связей gitolite для текущего сервера. Я работаю с Ubuntu

Меня специально смутил gl-setup, который выполнял эту работу, но оставил меня в темноте о процессе.

Спасибо

Ответ 1

Вам понадобится также переместить конфигурацию ssh:

 ~/.ssh/authorized_keys

Это файл, используемый SSH и настроенный Gitolite, чтобы:

См. " Как 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

Ответ 2

Инструкции были изменены для Gitolite V3

(Скопировано из http://gitolite.com/gitolite/rare.html):

  • Установите gitolite на новый сервер, используя тот же ключ для администратора как и для старого сервера.

  • Скопируйте файл .gitolite.rc со старого сервера, перезапишите его.

  • Отключите старый сервер, чтобы люди не нажимали на него. Существует несколько способов сделать это, но проще всего вставить exit 1; вверху ~/.gitolite.rc на старый сервер:

  • Скопируйте все репозитории с старого сервера, включая gitolite-admin. Убедитесь, что файлы в конечном итоге имеют право собственности и разрешения; если нет, chown/chmod them.

  • Запустите gitolite setup.

  • На клон старого gitolite-admin добавьте новый пульт (или измените существующий), чтобы указать на новый сервер. Затем git push -f на этот пульт.