Gitlab
的备份工具使用的是使用的是Ruby
编写的rake
,它被封装成了gitlab-rake
命令,在最新版本12.8.5中
又增加了gitlab-backup
命令,主要有两个功能-创建(create
)和恢复(restore
),无论是备份或恢复,都会存放文件,其路径前缀在/etc/gitlab/gitlab.rb
中查找backup_path
,我的信息如下,即默认备份路径是/var/opt/gitlab/backups
.
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
rake gitlab:backup:create
or
gitlab-rake gitlab:backup:create
or
gitlab-backup create
恢复比创建稍微麻烦些,因为有多个备份文件的情况下需要指定备份文件名,会自动在backup_path
路径下查找文件名对应的.tar
文件进行恢复.
rake gitlab:backup:restore [BACKUP=备份文件名]
or
gitlab-rake gitlab:backup:restore [BACKUP=备份文件名]
or
gitlab-backup restore [BACKUP=备份文件名]
首先备份当前版本,以防升级过程中出现问题可以随时回滚
其次,Gitlab不是所有版本都可以平滑升级,鲁莽地一次性升级将会带来不必要的麻烦.
所以需要关注官方给出的特殊版本,本次预览如下:
如果当前版本比较老,没有展示,可以参考升级建议,找到合适的跳板版本.
比如从12.0.2
升级到12.8.X
,必须先升级至12.2.0
然后再到12.8.X
# 创建备份
gitlab-rake gitlab:backup:create
gitlab-ctl stop
yum remove gitlab-ce
yum install -y gitlab-ce-12.2.0-ce.0.el7.x86_64
安装完成后,过段时间再检查是否升级成功,因为Gitlab
启动时间比较长.
确认升级成功后再次升级至12.8.X
# 创建备份
gitlab-rake gitlab:backup:create
gitlab-ctl stop
yum remove gitlab-ce
yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64
也可以一次性直接下载好对应的rpm包,然后使用rpm -Uvh
一步步升级.
# 创建备份
gitlab-rake gitlab:backup:create
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.2.0-ce.0.el7.x86_64.rpm
rpm -Uvh gitlab-ce-12.2.0-ce.0.el7.x86_64.rpm
##################检查是否升级成功##################
# 创建备份
gitlab-rake gitlab:backup:create
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm
rpm -Uvh gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm
一般按照官方指导升级不会出问题,但万一升级出现了问题就要考虑回滚,gitlab
没有提供rollback
命令,因此需要依赖备份文件,将新版本卸载后装回旧版本再恢复备份.