移动gitolite服务器

时间:2012-03-23 06:58:36

标签: git ubuntu repository gitolite

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

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

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

由于

2 个答案:

答案 0 :(得分: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到此遥控器。

答案 1 :(得分:9)

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

 ~/.ssh/authorized_keys

这是SSH使用并由Gitolite配置的文件:

  • 列出所有授权的公钥
  • 将其与forced-command script
  • 相关联
  • 将正确的用户名传递给gitolite脚本

请参阅“How Gitolite uses ssh


OP确认这是问题,并指出Gitolite文件:
moving the whole thing from one server to another”:
(注意:这适用于'g2'; ie Gitolite V2,但Gitolite V3 or 'g3'

的想法是相同的

这个过程背后的想法是创建一个新的Gitolite实例,然后推送现有的Gitolite repo,将自动重新声明新服务器~/.ssh authorized_keys 中所有当前现有的密钥你。

  
      
  • 安装gitolite。不要担心gl-setup步骤中使用的pubkey - 例如,这样做会很好:
  •   
    ssh-keygen -q -N '' -f dummy
    gl-setup -q dummy.pub
  
      
  • 编辑rc文件以使其与旧文件具有类似的设置。
  •   
  • 不要直接复制整个文件 - 某些变量(特别是GL_PACKAGE_CONFGL_PACKAGE_HOOKS)取决于安装,不应触及!
      执行diffvimdiff并仅复制您在旧服务器上更改的内容。
  •   
  • 禁用旧服务器,这样您的用户就不会对其进行任何更改   有几种方法可以做到这一点,但最简单的方法是在旧服务器的~/.gitolite.rc顶部插入此行:
  •   
    exit 1;
  
      
  • 将旧服务器中$REPO_BASE的内容复制到新服务器上的$REPO_BASE   默认情况下,如您所知,这些都是$HOME/repositories
  •   如果您使用root进行复制,则将文件
  • chown -R发送给正确的用户。
  •   
  • 修理挂钩
  •   
    gl-setup
  
      
  • 触发推送到admin repo
  •   
    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