Перемещение сервера Gitolite - PullRequest
11 голосов
/ 23 марта 2012

У меня есть рабочий сервер Gitolite. Тем не менее, я хочу переместить его в идентичную конфигурацию, но на большей машине. Несмотря на то, что у меня работает гитолит, я не уверен насчет струн под ним. Главным образом его отношения с SSH.

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

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

Спасибо

Ответы [ 2 ]

14 голосов
/ 25 апреля 2013

Инструкции для Gitolite V3

изменены (скопировано с http://gitolite.com/gitolite/rare.html):

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

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

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

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

  5. Выполните gitolite setup.

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

9 голосов
/ 23 марта 2012

Вам также потребуется переместить конфигурацию 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
...