GitLab搭建手记

最近闲下心来,重新折腾了一下GitLab,相比起一两年前折腾起GitLab的痛苦经历,各种Ruby环境配置以及依赖包的问题,搞得人一心想放弃。如今,GitLab的安装包安装起来真是方便多了,使用官方提供的Omnibus package,可以在两三分钟的时间搭好GitLab,可以看到GitLab作为一个开源产品,是一直在不断进步的。

搭建私有Git服务的优势

就目前而言,市面上比较有名的Git服务提供商,大概就是GitHub,BitBucket,GitLab,以及国内的Coding.net(瞎说!不是还有GitCafe么?呃,已经被Coding.net收购鸟)了。实际上,这些Git服务商提供的服务,都能满足个人的需求,无论是免费的开源仓库,还是私有仓库,个人用户都可以使用。这里主要谈一谈为什么需要搭建自己的Git服务,大概是有以下几点原因:

  • 公司的项目,因为商业层面的原因,需要把代码托管到自有的服务器上,并且服务器很有可能是放在企业内网中,不对公网开放。
  • 出于安全性的考虑,暂时没有使用国内的Git服务平台的计划。
  • GitHub和BitBucket,GitLab,由于服务商是在国外,受地域的影响,因此在网络访问上会有延迟。
  • 现有的服务商,对于免费的套餐都有一定的限制,比如GitHub只允许建立免费的开源repository,不允许建立私有的仓库。BitBucket允许建立无限制的私有项目,不过对于项目中参与的开发人员是有人数限制的。当团队中开发者规模达到一定数量后,需要付费购买相应的套餐。

这里并不是说购买GitHub和Bitbucket的付费套餐不好,购买付费套餐也未尝不是一种解决方案。而对于达到一定规模的团队来说,自己搭建私有的Git服务也是一个非常不错的选择。

GitLab本身也分为免费的社区版和付费的企业版,对于初创团队来说,免费的社区版已经能满足团队的使用了。关于社区版与企业版在功能上的差异对比,可以参考这里。当然,在团队发展壮大之后,也建议大家购买付费的企业版,获得更多的高级功能,除此之外,开源项目还是需要大家的支持才能更好的发展。

GitLab的安装与搭建

前面提到过,GitLab的安装已经相当方便了,在安装之前,我们需要根据实际需求,准备对应硬件配置的服务器。在官方的文档上,有提到过支持不同用户数,所需要的不同的硬件配置。

CPU的选择:

  • 1核心的CPU,基本上可以满足需求,大概支撑100个左右的用户,不过在运行GitLab网站的同时,还需要运行多个worker以及后台job,显得有点捉襟见肘了。
  • 两核心的CPU是推荐的配置,大概能支撑500个用户。
  • 4核心的CPU能支撑 2,000 个用户。
  • 8核心的CPU能支撑 5,000 个用户。
  • 16核心的CPU能支撑 10,000 个用户。
  • 32核心的CPU能支撑 20,000 个用户。
  • 64核心的CPU能支持多达 40,000 个用户。

内存大小的选择:

  • 512MB RAM 加上 1.5GB 的交换分区是最小化配置,不过不推荐用这么低的内存。
  • 1GB RAM 加上 1GB 交换分区,大概能撑100个左右的用户,不过会比较慢。
  • 2GB RAM 是推荐的配置,能撑100个左右的用户。
  • 4GB RAM 能支撑 1,000 个用户。
  • 8GB RAM 能支撑 2,000 个用户。
  • 16GB RAM 能支撑 4,000 个用户。
  • 32GB RAM 能支撑 8,000 个用户。
  • 64GB RAM 能支撑 16,000 个用户。
  • 128GB RAM 能支撑 32,000 个用户。

作为练手搭建,主要是为满足自己托管私有Git仓库的需求,所以这次我选择的机器是Azure东亚机房主机,配置如下:

GitLab对操作系统的支持也是有一定限制的,这一点要特别注意了。主流的Linux发行版是兼容的,比如:Ubuntu/Debian/CentOS/RedHat。现在还不支持的操作系统是: OS X/Arch Linux/Fedora/Gentoo/FreeBSD。Ubuntu 16.04 LTS是GitLab官方推荐的系统,这次就用它了。

搭建的过程就不详细表述了,可以按照官方的教程一步一步的来,用Omnibus的安装包,两三分钟就可以搞定。在安装中大致需要注意一些地方:

  • GitLab默认使用Postfix作为邮件系统,在安装过程中,如果我们需要系统往外网邮箱发送邮件,记得在配置的时候,选择”Internet Site”。
  • 如果使用自定义的域名,需要在/etc/gitlab/gitlab.rb中修改并配置external_url选项。保存之后,用 sudo gitlab-ctl reconfigure 命令使之生效。

安装结束过后,就可以直接用浏览器通过域名访问了。第一次访问的时候,系统会提示更新管理员密码。进入管理后台,进行一些简单的自定义配置,于是,一个私有的GitLab搭好了:

新建了一个git仓库,尝试推送代码到服务器,也许因为服务器在香港的原因,速度还真不赖。打算以后把我的一些私有项目都迁移到这台私有GitLab服务器上来。

支持原创技术分享,据说打赏我的人,都找到了女朋友!