环境:系统版本ubuntu14.04 、gitlab-ce.8.11.3
升级要求:系统升级为目前最新的LTS版本的ubuntu16.04、gitlab升级为最新的版本
升级可以有两种方案:
一种类似于迁移(重新找台机器,系统直接安装ubuntu16.04,然后安装gitlab版本和原版本一致,进行数据迁移后确认数据无误后再对gitlab进行升级)。
另一种直接在原机器上,首先对系统升级,然后对gitlab升级。
1、直接在原机器上升级的方案:
升级前备份数据:
停止gitlab备份数据 gitlab-ctlstopunicorn gitlab-ctlstopsidekiq gitlab-ctlstopNginx gitlab-rakegitlab:backup:create ls/var/opt/gitlab/backups/ 到阿里云中对gitlab机器创建快照,并把备份的gitlab数据拷贝出来
ubuntu14.04升级:
gitlab-ctlstop 更换apt源后更新(将apt源替换为16.04的xenial版本) apt-get-yupdate apt-get-yupgrade apt-get-ydist-upgrade
系统更新后启动gitlab,开始进行gitlab的更新
gitlab-ctlrestart gitlab-ctlstopunicorn gitlab-ctlstopsidekiq gitlab-ctlstopNginx
更新gitlab的两种方法:
1、使用dpkg安装包的方法 把下载好的gitlab_9.4.3版本传到gitlab服务器上使用dpkg进行安装 dpkg-igitlab-ce_9.4.3-ce.0_amd64.deb gitlab-ctlrestart 2、使用apt-get的方法 curl-shttps://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh|sudobash apt-getupdate aptlist|grepgitlab aptinstall-ygitlab-ce gitlab-ctlrestart
2、类似于迁移的方案:
迁移前备份数据:
停止gitlab备份数据 gitlab-ctlstopunicorn gitlab-ctlstopsidekiq gitlab-ctlstopNginx gitlab-rakegitlab:backup:create ls/var/opt/gitlab/backups/ 到阿里云中对gitlab机器创建快照,并把备份的gitlab拷贝到新机器上
ubuntu16.04安装好gitlab后进行恢复数据(此时安装的gitlab版本和原机器上的gitlab版本一致):
gitlab-ctlstopunicorn gitlab-ctlstopsidekiq gitlab-ctlstopNginx ll/var/opt/gitlab/backups/ chowngit:git/var/opt/gitlab/backups/1502516978_gitlab_backup.tar ll/var/opt/gitlab/backups/1502516978_gitlab_backup.tar gitlab-rakegitlab:backup:restoreBACKUP=1502516978 数据恢复后,gitlab数据仓库目录权限会发生变化,如果不更改,在后面升级gitlab时会出错 ls-ld/var/opt/gitlab/git-data/repositories chmod2770/var/opt/gitlab/git-data/repositories gitlab-ctlrestart
确保数据无误后,开始升级gitlab,升级前先停止gitlab的一些服务:
gitlab-ctlstopunicorn gitlab-ctlstopsidekiq gitlab-ctlstopNginx
更新gitlab的两种方法:
1、使用dpkg安装包的方法 把下载好的gitlab_9.4.3版本传到gitlab服务器上使用dpkg进行安装 dpkg-igitlab-ce_9.4.3-ce.0_amd64.deb gitlab-ctlrestart 2、使用apt-get的方法 curl-shttps://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh|sudobash apt-getupdate aptlist|grepgitlab aptinstall-ygitlab-ce gitlab-ctlrestart
说明:升级时之所以没有停止数据库服务,是因为当gitlab进行升级前,软件会自动备份数据库中的数据,并对数据库进行一些操作。
参考:https://docs.gitlab.com/omnibus/README.html