早先给公司内网搭建了一套基于Git的服务器GitLab,GitLab升级包更新较快,笔者在升级过程中记录下爬的教程以及遇到了不少的问题,现在分享给出来以供需要时参考。
积攒多年的血泪教训,升级之前做备份,另外笔者安装的是一键安装包,所以按照一键安装包的升级方式来操作,参考GitLab官方升级教程:https://about.gitlab.com/upgrade-to-package-repository/ 但原文过于简单,不太放心,另外参考了英文帮助:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/update/README.md#updating-from-gitlab-66-and-higher-to-the-latest-version
备份GitLab
修改默认备份目录:
默认备份目录是/var/opt/gitlab/backups,如果不想修改可以略过此步,编辑文件/etc/gitlab/gitlab.rb,找到代码
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
移除该行代码前的注释并修改目录:
# gitlab_rails['backup_path'] = "/home/backups"
在修改完后需要键入gitlab-ctl reconfigure命令重载配置文件即可。
执行备份:
直接执行下述代码:
gitlab-rake gitlab:backup:create
显示执行成功:
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
* group/project ... [DONE]
done
Dumping uploads ...
done
Dumping builds ...
done
Dumping artifacts ...
done
Dumping lfs objects ...
done
Creating backup archive: 1453173545_gitlab_backup.tar ... done
Uploading backup archive to remote storage ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
Deleting old backups ... skipping
升级GitLab
下载完整包
笔者想过下载个很小的升级包是不是就可以了,答案是否定的,而且由于一些原因,下载比较费力,老老实实用迅雷去下载吧。
先前往packages页面:https://packages.gitlab.com/gitlab/gitlab-ce,找到自己对应系统,笔者是CentOS7,下载rpm包
点击gitlab-ce-8.3.4-ce.0.el7.x86_64.rpm进入下载页,点右上角Download,生成下载链接后用迅雷下载,否则龟速
上传gitlab-ce-8.3.4-ce.0.el7.x86_64.rpm到服务器/root目录下
开始升级
回到linux命令行,依次键入命令(最后一步是备份意思,可以活力)
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
sudo gitlab-rake gitlab:backup:create
然后键入安装命令
# Ubuntu/Debian系统:
sudo dpkg -i gitlab_x.x.x-omnibus.xxx.deb
# CentOS系统:
sudo rpm -Uvh gitlab-x.x.x_xxx.rpm
耐心等待100%完成后,键入重建和重启命令:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
遇到的问题
进程占用
在reconfigure时遇到错误: Chef client 11936 is running,查得Chef client进程占用,查进程列表,键入ps命令
ps
相关gitlab的命令全杀掉,kill -9 11936,-9意思是强制结束进程,11936是进程pid
kill -9 11936
然后重新重建和重启,完美地完成
500错误
前面高兴的太早,访问GitLab发现报500错误,爬文得知大意为DB数据关系错误,需要升级数据库关系
输入以下指令查看数据升级状态
sudo gitlab-rake db:migrate:status
果然发现有一些显示为Down,显示为Up即表示正常同,再执行数据库关系升级
sudo gitlab-rake db:migrate
执行完成再重复重建、重启命令,问题解决
500错误解决参考出处:https://stackoverflow.com/questions/26224649/gitlab-error-500-after-updating-when-viewing-projects?rq=1