V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cheka
V2EX  ›  程序员

将GitLab 2.9.1 升级到 5.0

  •  
  •   cheka · 2013-04-09 15:36:08 +08:00 · 6920 次点击
    这是一个创建于 4242 天前的主题,其中的信息可能已经有所发展或是发生改变。
    此前的2.9.1不知为什么在界面添加ssh-key总是不能起效, 加一个用户或者key总是要在$HOME/.ssh/, gitolite-admin 里进行配置, 非常麻烦。

    Gitlab 5.0 不再依赖gitolite, 所以昨天下决心升级。

    安装过程基本参照官方文档
    https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md

    但是升级过程中形形色色的问题, 折腾了很久才搞定, 这里把一些容易出问题的地方列出, 供有需要的各位参考:

    1. 因为Gitlab5.0 不再支持SQLite, 因此升级Gitlab之前, 需要先将数据库从 SQLite3 迁移到MySQL, 大体步骤是
    1) 从SQLite里dump出数据
    2) 编辑gitlab的数据库配置文件, 设成MySQL
    3) 将数据导入MySQL
    参考这个链接
    https://wiki.archlinux.org/index.php/Gitlab#Migrate_from_sqlite_to_mysql

    2. 安装升级完Gitlab5.0 之后, 运行如下命令进行配置检查
    sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
    结果会列出所有有问题的地方, 以及给出修正提示。 按照提示更新数据库的scheme

    3. 反复运行上述检查, 务必确保没有问题之后, 可以访问gitlab, 但是持续显示404。 因为不怎么会ruby和rails,这个问题折腾了我好久,几乎要放弃,后来发现gitlab所用数据库 gitlabhq_production的users表里有两个字段name和username, 其中name是之前的用户名数据, 而username全部为NULL, 于是执行如下SQL
    "update users set username=name;"

    然后就可以正常访问gitlab了 -_-||

    4. 如果发现在gitlab界面上添加的ssh-key不生效, 可以到admin的Background Jobs里看看有没有相应的jobs, 以及有没有活动的sidekiq worker, 因为多半是sidekiq没有启动。

    5. 最好通过最新的gitlab界面重新添加一下各个用户的ssh-key, 然后把服务器上git用户的authorized_keys里使用gitolite-shell的条目都删除。

    6. 此时代码应该可以pull, 但是push的时候会报一些hook的问题失败, 原因是repositories中每个项目的hooks目录里会有一个链到.gitolite的update脚本的软链接, 每次push代码的时候都会被调用, 因为gitolite已经不再使用, 所以直接将所有项目目录里这个软链接删除即可。
    17 条回复    1970-01-01 08:00:00 +08:00
    lookhi
        1
    lookhi  
       2013-04-09 15:53:10 +08:00
    虽不觉但明厉 你懂的
    techzhou
        2
    techzhou  
       2013-04-09 16:23:24 +08:00
    我也是加key不生效 要自己运行update_keys任务 5.0终于说Recommended了么
    cheka
        3
    cheka  
    OP
       2013-04-09 16:49:21 +08:00
    @techzhou 多半是sidekiq没有运行, 你到background jobs里查看一下。 我现在只要在web界面增加key 就可以了, 无需手动执行任何脚本。
    glancesx
        4
    glancesx  
       2013-04-09 17:09:52 +08:00
    这东西赶上了chrome的升级速度了
    cheka
        5
    cheka  
    OP
       2013-04-09 17:19:03 +08:00   ❤️ 1
    @techzhou 可以用这段命令运行sidekiq
    sudo -u git -H bundle exec rake sidekiq:start RAILS_ENV=production
    flycn1985
        6
    flycn1985  
       2013-04-09 17:51:34 +08:00
    一转眼。。已经5.x了
    fly2never
        7
    fly2never  
       2013-04-09 19:31:15 +08:00
    小团队用atlassian stash吧,省心
    ljbha007
        8
    ljbha007  
       2013-04-09 20:29:27 +08:00
    真够折腾的
    adow
        9
    adow  
       2013-04-09 21:45:45 +08:00 via iPhone
    之前刚装好没多久就看到说5.0出来了,好纠结不知道要不要升级啊
    cngithub
        10
    cngithub  
       2013-04-09 22:39:36 +08:00
    个人还是觉得有点奇怪。小团队为什么不购买个github的服务?也不贵吧?

    未来维护这类配置与服务的时间,其实挺浪费时间的。
    cheka
        11
    cheka  
    OP
       2013-04-10 00:32:42 +08:00
    @cngithub 照常理购买服务绝对是更合理的选择,实际上我司两年半前就是unfuddle的付费用户,但是后来unfuddle被墙(准确的说是Amazon EC2被墙),一堆人坐在那里无法无法提交代码(那时候用的是Svn)。

    后来就下决心自己维护了,难说github什么时候也会被墙。

    ----哦, 已经墙过了。
    chloerei
        12
    chloerei  
       2013-04-10 00:36:54 +08:00 via Android
    @cheka VPN
    allenhsu
        13
    allenhsu  
       2013-04-10 00:57:44 +08:00
    key 不能自动加入也可能是文件权限问题?
    cyfdecyf
        14
    cyfdecyf  
       2013-04-10 10:16:33 +08:00
    @cheka 之前一直在用 gitolite,昨天部署 gitlab 也遇到 web 加 ssh key 失败的问题,谢谢提醒,起了 sidekiq 之后都正常了。

    @cngithub 我是放在学校实验室用,之前 gitolite 已经 65 个 repo 了,买 github 的收费版对我们来说太贵了。
    goinaction
        15
    goinaction  
       2013-04-10 23:43:41 +08:00
    我装了GitLab后,nginx转发的时候经常被GitLab拒绝连接,总是要重试很多次,看日志是worker timeout,不知道是哪儿配置有问题
    cngithub
        16
    cngithub  
       2013-04-11 13:27:28 +08:00
    @cyfdecyf 真不错,累计repo也太多了吧:D
    sharp
        17
    sharp  
       2013-04-25 17:06:19 +08:00
    这里竟然有这个帖子, 也可以这样解决 username为空 https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide

    RAILS_ENV=production bundle exec rails console

    User.where(:username => nil).each { |u| u.username = u.email.sub(/@.+/, ''); u.save! }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1316 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:38 · PVG 07:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.