鉴于GitHub速度感人,而大部分网络加速服务为了避免你拿来做攻击,会屏蔽掉发往TCP/22端口的包,虽然GitHub走HTTPS也可以,但每次都要打密码很蛋疼,也不太安全。另外,实验室可能还有共享代码之类的需求,因此考虑自己配置一个GitLab。
服务器配置如下:
- 阿里云 广州节点 学生套餐 1Core/2G/1Mbps出站
- openSUSE Leap 42.2 (建立VPS时选择SLES 12,然后参考此Wiki中的kexec-tools无盘安装方法)
- 已有LNMP套件一套
注意,即使对于只有10人不到的情况,也最好准备一台2G内存的机器。如果非要用1GB的,修改一下内存的换出界限。否则GitLab在工作时会大量使用swap,造成响应迟缓。
首先,GitLab-ce是不提供 Leap 42.2 的安装包的,但实际上,42.2和42.1的差异并不是很大, Leap 42.1 的rpm包是可以直接使用的,因此下载后直接拿过来用就行了。另一种是运行官方的一个脚本,加一个Repo进去(当然加完了你还得手动把URL中的42.2改为42.1,因为没有42.2的目录),然后从源里面安装。
我选了第一种,因为目前来看我并不需要gitlab总是最新,能在某个版本下稳定工作就足够了。
之后就可以gitlab-ctl reconfigure启动了,不过先别急,先填写一下配置文件,找到/etc/gitlab/gitlab.rb,把external_url改到你的域名上,先不要上https。之后gitlab-ctl reconfigure。
如果你是刚装好的新机器,或没有别的啥Web Service跑在上面,那么你的GitLab已经可以用了。
不过这样存在两个问题,首先是HTTP并不安全,第二个是,这台服务器上很可能还要运行别的站点,怎么办呢?
一种方法是停用GitLab内置的Nginx,加入一个vhost到自己的Nginx里面,然后开启HTTPS,并把HTTP重定向至HTTPS。这种方法配置起来比较麻烦,而且版本不一什么的可能还会导致配置问题。
另一种方法是改一下GitLab的端口,用独立的Nginx给GitLab内置的Nginx做个反代,开启HTTPS,把HTTP重定向。这种情况配置比较方便灵活,能够一定程度上避免版本不匹配的问题。其实就是比较傻,很适合我。
然后把证书啥的放好,就应该能访问了。不过现在有个小问题,就是GitLab并没有认为自己开启了HTTPS。因此需要把 external_url 改为HTTPS,然后随便给它一个证书,反代改为走HTTPS,就可以了。
安装完成了,再谈谈维护。
一般情况下,omnibus-gitlab安装时会自动注册为系统服务,也就是说随着开机启动,随着关机退出,不用特意去处理它。
对于升级,一般的zypper up就可以搞定,需要注意的是,升级时服务必须处于启动状态,否则升级会失败。跟某些软件更新的时候要先停止服务这点不太一样。另外升级前最好做备份。
备份参考这篇文章 ,需要注意的是,备份和恢复也要在GitLab处于运行状态时才行。
对于数据转移,先打个备份包,然后传到新服务器上,安装相同版本的GitLab,恢复就可以了。
嗯,基本上就这样?