公司旧的gitlab老化,需要将A服务器的gitlab迁移到B服务器,然后写了一个这个迁移文档,
登录A服务器
cd /home/git/
tar -zcvf /tmp/repositories.tar.gz ./repositories #打包仓库文件
sudo -u git -H pg_dump -f mydatabase.sql gitlabhq_production #备份sql文件
cp /home/git/.ssh/authorized_keys /tmp/authorized_keys #备份key文件
将三个文件传至B服务器/tmp下
登录B服务器
cd /tmp
tar -zxvf repositories.tar.gz
cp -r repositories /home/git/ #替换仓库目录
chmod -R ug+rwX,o-rwx /home/git/repositories/
sudo chmod -R ug-s /home/git/repositories/
find /home/git/repositories/ -type d -print0 | sudo xargs -0 chmod g+s
cat authorized_keys >> /home/git/.ssh/authorized_keys #将key文件追加到新的服务器中
sudo -u git -H psql -W -d gitlabhq_production -f mydatabase.sql #恢复数据库
恢复数据库前先进行以下操作
可以使用“\du“ 查看git用户权限,如果没有,则删除重新创建
drop role git; #删除用户
create user git createdb; #创建用户,赋予createdb的权限
执行这一步的时候最好先将原本的gitlabhq_production库删除,重新创建。 !!!注意git用户需要有CREATEDB的权限!!!
dropdb -h localhost -p 5432 -U git gitlabhq_production #删除库,需要没有连接的情况下才可以使用
create database gitlabhq_production owner git #创建库,并指定库的所有者
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:import:repos RAILS_ENV=production
#如果出现问题,请自行解决--! 因为我没有遇到错误
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production #检查
#如果出现”Please fix the error above and rerun the checks.“ 可以忽略
然后重启gitlab,重载postgresql
/etc/init.d/gitlab restart
/etc/init.d/postgresql reload
第一次写,多多指教。 如有不足,请见谅
阅读(2324) | 评论(0) | 转发(0) |