1. 首先查看旧服务gitlab的版本:
默认安装在/opt/gitlab/(当旧服务器上的硬盘挂载到其他系统时,或者使用从U盘启动时,路径将发生变化,但相对路径不变,都在xxx/opt/gitlab/下面,以下针对旧服务的文件位置,都是如此)目录找到version-manifest.txt文件,文件第一行记录gitlab的版本:
#此处版本gitlab-ce 9.2.5
2. 按照之前介绍的方法,安装该版本的gitlab:
安装之后,执行
sudo gitlab-ctl reconfigure
将gitlab服务正常启动,在浏览器上测试能够正常访问之后(网页默认会进入修改密码的界面,这是gitlab中root用户的密码),然后将其服务关闭sudo gitlab-ctl stop
,然后再进行下面的操作。
注意:版本一定保持一致,否则迁移将会失败。
3. 将旧服务器上的仓库拷贝到新服务器上。
注:仓库的迁移方法也可以参考官网的介绍:
3.1 将旧服务器上位于相对位置的/var/opt/gitlab/git-data/目录下面的repositories目录打包,拷贝到新服务器上(如果旧服务的硬盘直接挂载在新服务器上,则可以直接拷贝)。
#本次演示,旧服务器挂了,需要通过U盘启动,因此旧服务器和新服务器直接传文件,只能通过网络。#当前位于旧服务器的/var/opt/gitlab/git-data/目录下#gitlab使用默认配置时,仓库在repositories目录下面tar -cvf repositories.tar repositories/#将包通过网络拷贝到新服务器的当前用户的家目录下面,保证有权限向新服务器写入数据scp repositories.tar 新服务器用户@新服务器的IP地址:~/
3.2 将数据解压,并修改权限,移动到新服务器的/var/opt/gitlab/git-data/下面。
#解压包tar -xvf repositories.tar#修改属主属组sudo chown -R git.root repositories#移动仓库sudo mv repositories /var/opt/gitlab/git-data/
4. 将旧服务器上的存储在postgresql(默认安装配置的gitlab的数据,存储在postgresql中)中的数据拷贝到新服务器上。
4.1 将旧服务器上位于相对位置的/var/opt/gitlab/postgresql/目录下面的data目录打包,拷贝到新服务上。
#打包tar -cvf data.tar data/#发送到新服务器的用户的家目录中scp data.tar 新服务器的用户@新服务器的IP地址:~/
4.2 解压,并修改属主属组,移动到新服务器的/var/opt/gitlab/postgresql/目录下面。
#解压tar -xvf data.tar #修改属主属组sudo chown -R gitlab-psql.root data#移动数据(移动数据较快,又可以保留文件的原始权限)sudo mv data /var/opt/gitlab/postgresql/#或者使用带权限的拷贝sudo cp -rp data /var/opt/gitlab/postgresql/
5. 重新配置gitlab
sudo gitlab-ctl reconfigure
6. 启动服务
#启动服务sudo gitlab-ctl start#查看启动状态sudo gitlab-ctl status#查看实时启动状态sudo gitlab-ctl tail