本人原服务器A上使用的是gitlab-ce-8.16.0-ce.0.el6.x86_64,工作需要需将其转移到B服务器上,并升级到最新版本,服务器使用centos6.9系统

一、备份

 

1.无论做什么大型操作,最先要做的必须是备份好原服务器数据

shell> gitlab-rake gitlab:backup:create STRATEGY=copy

备份文件在/var/opt/gitlab/backups/下,假设备好的文件为1524827695_2018_04_27_gitlab_backup.tar

注:在备份期间需禁止对gitlab进行任何操作

二、新服务器搭建gitlab

为了备份可用,新服务器上使用跟原服务器相同的版本
此处如果旧服务器已是最新版,可以在新服务器直接使用yum安装

shell> yum install -y gitlab-ce

1.因不是最新版本,需要从https://packages.gitlab.com/gitlab/gitlab-ce上下载所需的版本,此处因为安装系统为centos6,所以下载el6版本

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-8.16.0-ce.0.el6.x86_64.rpm/download.rpm

2.安装git

shell> yum -y install git

3.安装gitlib

shell> EXTERNAL_URL="http://gitlab.example.com" rpm -i gitlab-ce-8.16.0-ce.0.el6.x86_64.rpm

安装好后,修改/etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'
其上所有的http://gitlab.example.com改成自己要使用的gitlab地址

重新配置升效

shell> gitlab-ctl reconfigure

三、拷贝备份

将备份拷到新服务器/var/opt/gitlab/backups/下

shell> scp root@10.130.161.12:/var/opt/gitlab/backups/1524827695_2018_04_27_gitlab_backup.tar /var/opt/gitlab/backups/

修改备份文件权限,以免恢复备份时出现权限不足的情况

shell> chown git:git 1524827695_2018_04_27_gitlab_backup.tar
shell> chmod 777 1524827695_2018_04_27_gitlab_backup.tar

四、恢复备份
此步参考官方文档https://docs.gitlab.com/ce/raketasks/backup_restore.html#restore-for-omnibus-installations

1.停止数据相服务

shell> gitlab-ctl stop unicorn
shell> gitlab-ctl stop sidekiq
# Verify
shell> gitlab-ctl status

2.恢复备份

此处命令结尾使用的是上面拷贝过来的文件名,但不是全名,取其_gitlab之前的名称即可

shell> gitlab-rake gitlab:backup:restore BACKUP=1524827695_2018_04_27

最开始的时候,会提示输入yes,直接输入即可

3.重置服务

shell> gitlab-ctl restart
shell> gitlab-rake gitlab:check SANITIZE=true

五、升级
升级之前最好看一下官方文档,看一下是否有注意事项
官方gitlab源码及文档地址
https://gitlab.com/gitlab-org/gitlab-ce
omnibug-gitlab升级主页,里面会有注意事项
https://docs.gitlab.com/omnibus/update/README.html
此处提示gitlab从10.0版开始PostgreSQL使用了9.6以上的版本,需先将gitlab升级到9.5.X
查看PostgreSQL版本命令

shell> /opt/gitlab/embedded/bin/psql --version

1.升级9.5.9
(1)仍然https://packages.gitlab.com/gitlab/gitlab-ce上下载9.5.9版本

(2)备份

shell> gitlab-rake gitlab:backup:create STRATEGY=copy

(3)关闭部分gitlab服务

shell> gitlab-ctl stop unicorn
shell> gitlab-ctl stop sidekiq
shell> gitlab-ctl stop nginx
# Verify
shell> gitlab-ctl status

(4)升级

shell> rpm -Uvh gitlab-ce-9.5.9-ce.0.el6.x86_64.rpm

(5)重新配置gitlab

shell> gitlab-ctl reconfigure

(6)重启gitlab

shell> gitlab-ctl restart

2.升级10.7.1

此处重复升级9.5.9步骤即可

六、更改IP(可选)
为了方便工作,迁移后的gitlab服务不更改IP是最好的,所以需将旧服关停,将新服IP和gitlab配置更改为旧服IP
修改/etc/gitlab/gitlab.rb中以下选项为旧服IP
external_url 'http://gitlab.example.com'

修改好后需重新配置和启动gitlab

shell> gitlab-ctl reconfigure
shell> gitlab-ctl restart

注:新迁移和升级完的服务器可能会占用较大内存,可以重启服务器以释放掉迁移和升级时消耗的冗余内存


七、客户端更改git地址
如果使用的是旧服IP,服务端hostkey已变更,客户端需变更本机know_host方可正常工作
Mac: ~/.ssh/known_hosts
Windows: C:\Users\Administrator\.ssh\ known_hosts
将以上文件中关于旧服IP相关的条目删掉即可


八、查找删除旧包
如果在以上步骤中有数据未清理干净,或错误操作导致的需重新安装,可按以下步骤操做

1.停止服务

shell> gitlab-ctl stop

2.查找已安装的包

shell> rpm -qa|grep -i gitlab

3.删除已安装的包

shell> rpm -ev gitlab-ce-10.7.1-ce.0.el6.x86_64

4.删除残余数据

shell> rm -rf /var/opt/gitlab
shell> rm -rf /etc/gitlab
shell> rm -rf /opt/gitlab

 

 

 

 

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐