在阿里云中安装GitLab
之前做项目一直使用SVN作为主要的版本控制工具,但是后来发现SVN没法图形化统计一个用户的提交数据,那么这样就不好评估我的工作效率。因此,就转向了 GitLab 作为我们的版本控制工具。
GitLab的安装方式
GitLab的两种安装方法:
编译安装
优点:可定制性强。数据库既可以选择
MySQL
,也可以选择PostgreSQL
;服务器既可以选择Apache
,也可以选择Nginx
。缺点:国外的源不稳定,被墙时,依赖软件包难以下载。配置流程繁琐、复杂,容易出现各种各样的问题。依赖关系多,不容易管理,卸载
GitLab
相对麻烦。
通过
rpm
包安装优点:安装过程简单,安装速度快。采用
rpm
包安装方式,安装的软件包便于管理。缺点:数据库默认采用
PostgreSQL
,服务器默认采用Nginx
,不容易定制。
由于国内网络环境的原因,再加上阿里云 ECS
的坑爹深度定制,最好采用第二种方式。
之前太年轻,尝试了第一种方式,编译总是出错…试了好几次都不行,吓鸟了,最后换成了 rpm
安装。
Note
阿里云的ECS至少要一核
& 1G内存
安装 GitLab CE Omnibus
包
在linux终端下,使用cat /etc/issue命令查询当前系统的发行版本,查询到阿里云所安装的linux版本为CentOS release 6.6 (Final)。
进入gitlab官方网站,选择对应的操作系统——CentOS 6 (and RedHat/Oracle/Scientific Linux 6),按照官方的提示进行安装。
首先安装配置必要的依赖,在Centos 6 和 7 中,以下的命令将会打开HTTP和SSH在系统防火墙中的可访问权限。
1 | sudo yum install openssh-server |
接下来下载 Omnibus package
包并安装:
1 | curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm |
Note
由于amazonaws的服务器被墙,下载这个包时可能需要翻墙下载。
然后配置并启动GitLab,
打开/etc/gitlab/gitlab.rb
,将external_url = 'http://git.example.com'
修改为自己的域名地址:http://example.com
然后执行下面的命令,对 GitLab
进行编译。
1 | sudo gitlab-ctl reconfigure |
最后登录GitLab
1 | Username: root |
配置GitLab的默认发信邮箱
GitLab
中使用 postfix
进行邮件发送。
因此,可以卸载系统中自带的 sendmail
。
使用 yum list installed
查看系统中是否存在 sendmail
,若存在,则使用 yum remove sendmail
指令进行卸载。
接下来我们就要测试系统是否可以正常发送邮件
1 | echo "Test mail from postfix" | mail -s "Test Postfix" [email protected] |
注:上面的[email protected]为你希望收到邮件的邮箱地址。
当邮箱收到系统发送来的邮件时,将系统的地址复制下来,如:`[email protected],打开
/etc/gitlab/gitlab.rb`,将
1 | # gitlab_rails['gitlab_email_from'] = '[email protected]' |
修改为
1 | # gitlab_rails['gitlab_email_from'] = '[email protected]' |
保存后,执行 sudo gitlab-ctl reconfigure
重新编译GitLab。
如果邮箱的过滤功能较强,请添加系统的发件地址到邮箱的白名单中,防止邮件被过滤。
我使用的 Outlook
就马上翻脸给拦截了…
Note
: 系统中邮件发送的日志可通过 tail /var/log/maillog
命令进行查看。