在阿里云中安装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" xxx@xxx.com |
注:上面的xxx@xxx.com为你希望收到邮件的邮箱地址。
当邮箱收到系统发送来的邮件时,将系统的地址复制下来,如:root@iZ23syflhhzZ.localdomain,打开 /etc/gitlab/gitlab.rb,将
1 | # gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' |
修改为
1 | # gitlab_rails['gitlab_email_from'] = 'root@iZ23syflhhzZ.localdomain' |
保存后,执行 sudo gitlab-ctl reconfigure 重新编译GitLab。
如果邮箱的过滤功能较强,请添加系统的发件地址到邮箱的白名单中,防止邮件被过滤。
我使用的 Outlook 就马上翻脸给拦截了…
Note: 系统中邮件发送的日志可通过 tail /var/log/maillog 命令进行查看。