记一次Gitlab的升级过程

公司的gitlab是一年多前安装的,还是比较老的7.6.2版本,各种问题导致迫切需要升级到较新的版本。为了保证平时的正常使用,只能在假期进行升级。所以利用端午节假期搞了2天,折腾了几次才搞明白。不过升级过程中的辛苦还是值得的,不仅新的版本在各种功能、UI上有优化,而且我对gitlab也更加熟悉了。

根据gitlab官网,升级采用Omnibus的自动安装方式。由于是升级,只要更新yum的库并下载最新包即可。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

这种更新方式相当于对源码做了一层包装,可以通过更改gitlab.rb文件更新所有的配置,而不是直接去修改gitlab.yml, 数据库的config.yml等文件。如果是通过源码编译安装/更新,相信会更加复杂。

安装的过程比较顺利,但肯定不是一下子搞定的,下面一步步的记录错误的原因和解决方案,希望对别人有帮助。

PostgreSql的库结构问题
自动安装提示完成,但数据库不可用,用status查看是处于down状态,看了日志(/var/log/gitlab/postgresql/current),如下报错

The data directory was initialized by PostgreSQL version 9.2.18, which is not compatible with this version 9.6.2.

大意是新版数据库结构不兼容老的。这个问题解决还算顺利,网上不少资料,主要参考的是这篇
http://blog.10ninox.com/2015/01/psql-database-incompatible/
处理后不再显示该错误,而出现以下的错误。

PostgreSql的IPv6问题
还是同样的日志,显示如下错误

Address family not supported by protocol

一般这种都是IPv6导致,查了些资料,解决办法是在/var/opt/gitlab/postgresql/data中修改postgresql.conf文件

将listen_addresses改为127.0.0.1

完全调试完成后,发现该值被改为了空字符串,说明也没问题。

PostgreSql的Migrate问题
解决上述问题后,需要执行数据库的migrate命令,如下

gitlab-rake db:migrate

这时会出现一个pg_trgm问题,大意是没有创建extension记录。参考这里官方的文档
https://docs.gitlab.com/ce/install/installation.html

不过注意创建extends时,数据库不是template1,而是gitlabhq_production
重新整理这个步骤如下

step 1: sudo -u gitlab-psql psql -d template1 -c "CREATE USER git CREATEDB;"
step 2: sudo -u gitlab-psql psql -d template1 -c "CREATE DATABASE gitlabhq_production OWNER git;"(可能不需要)
step 3: sudo -u gitlab-psql psql -d gitlabhq_production -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"

之后再次运行migrate脚本,问题解决。

unicorn的启动权限问题
unicorn线程是用git用户启动的,必须递归的给

/opt/gitlab/embedded/service/gitlab-rails/

目录的访问权限,否则启动会失败,或者界面出不来(具体现象我记不清了)。

gitlab-shell的check问题
在做系统检查(gitlab-rake gitlab:check)时,会出现一个找不到.gitlab_shell_secret的问题,貌似不影响启动和使用,解决也不叫简单,调用以下命令

ln -s /var/opt/gitlab/gitlab-shell/gitlab_shell_secret ../gitlab-rails/.gitlab_shell_secret

增加软连接即可。

reconfigure不生效问题
这是这次升级最大的坑,更新gitlab.rb文件后,根据各种文档描述都是要执行reconfigure命令,我也执行了很多次。但是就是感觉各种配置没有改,命令行运行也不报错。偶然发现这个命令是有日志的,目录是

/var/log/gitlab/reconfigure

查看日志才发现所有的尝试都没有执行,又是一个地址族不支持。查了资料让改源代码的localhost或者看/etc/hosts的配置,打开后者一看,乖乖,居然把ipv4的localhost注释掉了,只留了ipv6的,打开注释,一切正常。

至此基础配置完成,我们需要修改git库位置,能够reconfigure就一切顺利了,所有功能基本恢复。

总结

这次升级时间紧,原库升级几乎没给自己留后路,在问题的解决中发现gitlab本身的管理还是非常完善的,特别是这种Omnibus的自动安装方式。发现的这些错误网上基本都有解决方案,没有的一般也要从自己的环境上找原因。

gitlab比较重要的目录/文件

主配置文件:/etc/gitlab/gitlab.rb
程序安装目录:/opt/gitlab
程序配置和运行目录:/var/opt/gitlab
程序日志目录:/var/log/gitlab

gitlab重要的命令

升级数据库:gitlab-rake db:migrate
显示配置环境:gitlab-rake gitlab:env:info
检查gitlab运行环境:gitlab-rake gitlab:check
gitlab安装(慎用,会清数据库):gitlab-rake gitlab:setup
gitlab启动/停止/重启:gitlab-ctl start/stop/restart

新的ui还是不错的,管理页面将信息都放到了上面,如下图所示:

新的UI

有些问题可能我也没有碰到,可以一块研究,有问题给我留言哈!

【补充:2018-1-16】访问出现forbidden的现象,换用4G网络问题解决。参考以下文章,可以解决问题:
http://www.cnblogs.com/jianxuanbing/p/7661306.html

【补充:2018-02-16】9.2.2升级到10.4.3

  1. 使用本文开头的命令用yum升级;中途升级数据库可能有问题,提示里又一个skip的命令,可以执行,然后升级安装包成功;
  2. 要使用gitlab-ctl reconfigure命令做一次重新更新。之前用status看,有几个命令没有服务没有起来,unicorn还有目录权限的问题(这里chmod了一下,估计要是先做reconfigure就不需要了)
  3. restart服务后,所有服务都起来了,界面也变成了新的,这次更新比较顺利,开心!


    GitLab 10.4.3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,302评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,563评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,433评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,628评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,467评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,354评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,777评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,419评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,725评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,768评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,543评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,387评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,794评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,032评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,305评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,741评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,946评论 2 336

推荐阅读更多精彩内容