将Gitlab和Gitolite服务器移到另一台机器上

现在,我有我的Ubuntu服务器上运行的gitlabgitolite。 但是,这台服务器太慢,我的公司希望将服务器移动到另一台机器。 有没有办法将gitlab和gitolite服务器(整个文件,用户和设置)移动到另一台机器上?

再次安装和创build所有用户和存储库将是我的最后select。 先谢谢你。

我一直在做这个每小时crontab作业,以加快本地部署。 (创build原始服务器的精确副本,作为只读镜像,我个人称之为木偶机器)。

所有你需要做的是:

  1. 备份/恢复mysql数据(工具:mysqldump / mysql <backup.sql.txt)
  2. 将所有gitlab www复制到新机器(scp,rsync)
  3. 将所有gitolite目录复制到新机器(rsync)

您始终可以运行以下命令来testingpuppet运行是否成功。

bundle exec rake gitlab:app:status RAILS_ENV=production 

一些详细的程序:

我已经通过使用Ubuntu 12.04 gitolite apt-get安装完成了mime设置,通过官方指南rest,我也做了一些笔记:

  • 提醒: https : //github.com/c2h2/gitlabhq_install/blob/master/aio.sh
  • 自动备份脚本: https : //github.com/c2h2/gitlabhq_install/blob/master/gitlab_backup.rb

自动(无密码)rsync / scp进程需要SSH私钥/公钥,如果你不懂plz,请阅读http://troy.jdmz.net/rsync/index.html

所有你需要设置的是原始机器工作后的一些cron作业:这也是在线镜像。 (你不需要重新启动任何networking服务器/机器)

镜像机器上的crontab:

 58 * * * * rsync -zav root@my_remote_server.com:/home/git /home 11 * * * * rsync -zav root@my_remote_server.com:/root/mysql_hourly_dump.txt /root 15 * * * * mysql -u root -p"secure password" gitlabhq_production < mysql_hourly_dump.txt 20 * * * * rsync -zav --delete my_remote_server.com:/www/ /www 

服务器上的crontab:

 7 * * * * mysqldump -p"secure password" gitlabhq_production -u root > /root/mysql_hourly_dump.txt 

移动gitolite似乎很容易:

  • 你需要确保它所引用的~/.ssh/authorized_keys仍然在新家的~/.ssh/authorized_keys中(所以你主要需要复制这个文件)
  • 您需要移动repositories.gitolite.gitolite.rc文件(检查最后一个path)

“用户”只在gitolite文件和gitlab数据库中声明。

应该重新安装GitLab(因为它使用的所有gem都可以在第一次安装时使用固定path),并且它的数据库更新/replace为Ubuntu服务器的数据库(通过文件复制或通过sql导出/导入)。