环境介绍:
CentOS 6.7
gitlab:6.3.1
需求:gitlab从A服务器迁移至B服务器
第一、在B服务器上部署gitlab环境
参考《GitLab完整搭建(版本6.3.1)》
第二、备份A服务器上的数据
1).打包仓库文件 1
2
3
| #su- git
$cd/home/git/
$tarzcvf repositories.tar.gz ./repositories
|
2).备份sql文件 1
| $mysqldump-uroot -pxxxx gitlabhq_production > /tmp/gitlabhq_production.sql
|
3).备份keys
1
| $cp/home/git/.ssh/authorized_keys /tmp/authorized_keys
|
4).复制1-3步的文件到B服务器 1
| $scprepositories.tar.gz gitlabhq_production.sql authorized_keys root@B:/tmp/
|
第三、在B服务器上导入数据
1). 导入仓库,检查权限 1
2
| $cd/home/git
$tarzxvf repositories.tar.gz
|
如果权限有异常,直接重新赋权 1
| $chown-R git.git /home/git/repositories/
|
2).导入数据库 1
| $mysql-uroot -pxxx gitlabhq_production < gitlabhq_production.sql
|
3).导入keys 1
| $catauthorized_keys >> /home/git/.ssh/authorized_keys
|
4.将文件导入ruby 1
2
3
| $cd/home/git/gitlab/
$bundleexec rake gitlab:import:repos RAILS_ENV=production
$bundleexec rake gitlab:satellites:create RAILS_ENV=production
|
5).检测 1
| $bundleexec rake gitlab:check RAILS_ENV=production
|
如果检测没有异常,可以重启gitlab服务 1
| #/etc/init.d/gitlab restart
|
第四、验证git pull/push与异常解决
1). git pull 2). git push 如果报错: git.exe push --progress "origin"master:master Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 350 bytes | 0bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: GitLab: An unexpected erroroccurred (redis-cli returned 1). remote: error: hook declined to updaterefs/heads/master ! [remote rejected] master -> master(hook declined) error: failed to push some refs to'http://192.168.4.251/caoyang/test1121.git' 屏蔽 /home/git/gitlab-shell/config.yml 28行redis配置
|