本人原服务器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-ce1.因不是最新版本,需要从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.rpm2.安装git
shell> yum -y install git3.安装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 status2.恢复备份
此处命令结尾使用的是上面拷贝过来的文件名,但不是全名,取其_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 --version1.升级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 restart2.升级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 stop2.查找已安装的包
shell> rpm -qa|grep -i gitlab3.删除已安装的包
shell> rpm -ev gitlab-ce-10.7.1-ce.0.el6.x86_644.删除残余数据
shell> rm -rf /var/opt/gitlab shell> rm -rf /etc/gitlab shell> rm -rf /opt/gitlab