升级思路:先在新服务器上安装一个和原版本相同版本的gitlab,然后备份原版本gitlab数据,备份完在新服务器恢复,恢复完在进行升级。
1.查看gitlab版本的命令:
gitlab-rake gitlab:env:info
备份原老服务器上的的数据
gitlab-rake gitlab:backup:create RAILS_ENV=production
PS: 备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1481529483_gitlab_backup.tar
将步骤2生成的tar文件拷贝到新服务器上相应的backups目录下
可以利用scp进行直接拷贝.
scp username@src_ip:/var/opt/gitlab/backups/1481529483_gitlab_backup.tar /var/opt/gitlab/backups
PS: username为原服务器的用户名,src_ip原服务器IP地址
在新服务器恢复数据
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1481529483
PS:BACKUP的时间点必须与原服务器备份后的文件名一致
5.出错解决:
数据迁移到后检查登录gialab有时候会跳出500报错(Something went wrong on our end.)以及无法正常新建用户
查看日志:tail -f /var/log/gitlab/redis/current
Can't save in background: fork: Cannot allocate memory
解决方案:
修改/etc/sysctl.conf
加上vm.overcommit_memory = 1, Linux内核会根据参数vm.overcommit_memory参数的设置决定是否放行。
修改完执行sysctl -p
vm.overcommit_memory = 1,直接放行
vm.overcommit_memory = 0:则比较 此次请求分配的虚拟内存大小和系统当前空闲的物理内存加上swap,决定是否放行。
vm.overcommit_memory = 2:则会比较进程所有已分配的虚拟内存加上此次请求分配的虚拟内
在升级前一定要做好备份,记录自己当前gitlab-ca的版本号。
查看当前gitlab版本号
[root@localhost ~]``# yum list | grep gitlab-ce
gitlab-ce.x86_64 11.4.3-ce.0.el7 installed
备份文件
[root@localhost ~]# gitlab-rake gitlab:backup:create
在/var/opt/gitlab/backups下会生成一个备份文件如:1557218709_2019_05_07_9.2.2_gitlab_backup.tar,其中1557218709即为此次备份都版本号。
还原备份
执行
gitlab-rake gitlab:backup:restore BACKUP=备份版本号
(一)配置gitlab-yum源
[root@localhost ~]# cat << EOF > /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enable=1
gpgkey=https://packages.gitlab.com/gpg.key
EOF
(二)yum localinstall安装
注意:Gitlab的升级不能跨越大版本号,因此只能升级到当前大版本号到最高版本,方可升级到下一个大版本号。
需要做的升级步骤如下:
11.4.3->11.11.8->12.0.9
1、准备好相关的rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.9-ce.0.el7.x86_64.rpm
2、依次执行下面指令逐步升级,在每一步安装成功后如果发现界面500,执行gitlab-ctl reconfigure指令刷新配置文件。(一定保证数据可以正常访问方可执行下一步升级指令)
yum localinstall -y gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
yum localinstall -y gitlab-ce-12.0.9-ce.0.el7.x86_64.rpm
完成之后再查看下当前的版本:
[root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.0.9