移动gitolite服务器
我有一个工作的gitolite服务器。但是,我想将其移至相同的配置,但在更大的机器上。即使我有gitolite工作,我不确定它下面的字符串。主要是它与ssh的关系。移动gitolite服务器
我想只安装包gitolite,git-core。并移动git用户的存储库目录。没有一个键需要改变。它是否正确 ? gitolite对当前服务器有什么配置关系。我正在与Ubuntu合作
我被gl-setup弄得特别困惑,它完成了这项工作,但让我在这个过程中处于黑暗中。
感谢
你需要什么,也移动你的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'相同)
这个过程背后的想法ss将创建一个新的Gitolite实例,然后推送您现有的Gitolite回购协议,其中会自动为您自动重新声明新服务器中的所有当前现有密钥~/.ssh authorized_keys
。
- 安装gitolite。不要担心在GL-设置步骤中使用的PUBKEY - 比如这会做得很好:
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
将文件复制到正确的用户,如果您使用根复制。- 修复了钩
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
所述指令已经改变为Gitolite V3
(从http://gitolite.com/gitolite/rare.html复制):
在新服务器上安装gitolite,使用相同的密钥为admin 为旧服务器。
从旧服务器复制
.gitolite.rc
文件,覆盖此文件。禁用旧服务器,以免人们推送到它。有几种方法可以做到这一点,但最简单的就是在
~/.gitolite.rc
顶部的旧服务器上插入exit 1;
:在复制所有的回购从旧的服务器,其中包括
gitolite-admin
。确保文件最终拥有正确的所有权和权限;如果没有,chown/chmod它们。运行
gitolite setup
。在旧的gitolite-admin的克隆上,添加一个新的远程(或更改现有的)以指向新的服务器。然后
git push -f
到这个远程。
我在gitolite v3.5.2-5上使用这个程序,它没有任何问题。 – gontard 2013-09-05 13:29:27
感谢您的重播。帮助最多的链接是 – jeremyvillalobos 2012-03-24 05:47:26
感谢您的重播。帮助最多的链接是http://sitaramc.github.com/gitolite/moveserver.html。我必须检查最新的gitolite才能使用命令gl-admin-push。工作完成了......谢谢 – jeremyvillalobos 2012-03-24 05:55:08
@ user1052943:优秀。我已经将该流程纳入了更多知名度的答案中。 – VonC 2012-03-24 09:01:43