移动gitolite服务器

jer*_*bos 12 git ubuntu repository gitolite

我有一个工作的gitolite服务器.但是,我想将它移动到相同的配置,但是在更大的机器上.即使我有gitolite工作,我不确定它下面的字符串.主要是它与ssh的关系.

我想安装gitolite,git-core软件包.并移动git用户的存储库目录.没有钥匙需要改变.它是否正确 ?什么是gitolite对当前服务器的配置关系.我正在使用Ubuntu

我特别对gl-setup感到困惑,它完成了这项工作,但让我对这个过程一无所知.

谢谢

mtp*_*typ 14

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到这个遥控器.


Von*_*onC 9

您还需要移动您的ssh配置:

 ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

这是SSH使用的文件,由Gitolite配置,以便:

  • 列出所有授权的公钥
  • 将其与强制命令脚本相关联
  • 将正确的用户名传递给gitolite脚本

参见" Gitolite如何使用ssh "


OP确认这是问题,并指出Gitolite文档:
" 将整个事物从一台服务器移动到另一台服务器 ":(
注意:这是'g2';即Gitolite V2,但Gitolite V3的想法是相同的或'g3')

这个过程背后的想法是创建一个新的Gitolite实例,然后把你的现有Gitolite回购,这将自动重新声明在新服务器当前的所有现有密钥~/.ssh authorized_keys为您服务.

  • 安装gitolite.不要担心gl-setup步骤中使用的pubkey - 例如,这样做会很好:
    ssh-keygen -q -N '' -f dummy
    gl-setup -q dummy.pub
  • 编辑rc文件以使其具有与旧文件类似的设置.
  • 不要直接复制整个文件 - 一些变量(特别是GL_PACKAGE_CONFGL_PACKAGE_HOOKS)是依赖于安装的,不应该被触及!
    做一个diff或一个vimdiff并且仅复制您在旧服务器上更改的内容.
  • 禁用旧服务器,以便您的用户不会对其进行任何更改.
    有几种方法可以做到这一点,但最简单的方法是~/.gitolite.rc在旧服务器的顶部插入此行:
    exit 1;
  • $REPO_BASE旧服务器中的内容复制到$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