在 Linux 上安装部署 Gitlab 实例(以 CentOS 为例)

0.系统需求

操作系统

  • Ubuntu
  • Debian
  • CentOS

硬件需求

存储

这个不必说太多了,根据你自己想存储的数据量而定

CPU

  • 单核CPU最多支持100个用户,而且会运行的很慢
  • 2核最多支持500用户,是推荐的最低要求
  • 4核最多支持2000用户
  • 8核最多支持5000用户
  • 16核最多支持10000用户
  • 32核最多支持20000用户
  • 64核最多支持40000用户
  • 更多用户请参考官方文档:分布式服务器

内存

维持 Gitlab 正常运行需要至少4GB内存(物理内存RAM+交换空间Swap)。

  • 1GB RAM+3GB Swap 是运行的最低需求,而且会运行极其缓慢
  • 2GB RAM+2GB Swap 最多支持100用户,而且会运行缓慢
  • 4GB RAM 是推荐的最低要求,且最多支持100用户
  • 8GB RAM 最多支持1000用户
  • 16GB RAM 最多支持2000用户
  • 32GB RAM 最多支持4000用户
  • 64GB RAM 最多支持8000用户
  • 128GB RAM 最多支持16000用户
  • 256GB RAM 最多支持32000用户
  • 更多用户请参考官方文档:分布式服务器

我的配置

由于只是一个校内的 Gitlab 实例,因此我选择使用VMWare ESXi虚拟化出来的8核CPU和4GB内存虚拟机,将来不够再升级

数据库等

数据库什么的官方文档上的东西在我们的安装包内就自动安装了,所以在此不再赘述。

1.安装

安装方式

Gitlab 官方提供了三种方式:

因为我们的服务器在国内,所以使用官方提供的 Omnibus 或者官方源都太慢,所以我们选择第二种方式,并且使用清华大学 TUNA 社团提供的第三方镜像源安装。若你的服务器在国外,请自行前往 Gitlab 官方文档查看安装方法。

安装步骤

此处只介绍 CentOS 的安装,其他系统请自行前往TUNA镜像站查看安装方法。

新建 /etc/yum.repos.d/gitlab-ce.repo,内容为

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

再执行

sudo yum makecache
sudo yum install gitlab-ce

就开始安装了,这个过程快的半小时,慢的则需要数小时,由你的网速和系统性能决定。

安装后检查

为了确保安装的完整性,你可以执行以下命令检查:

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

如果所有项目都是绿色,那么你的安装就是非常成功的。

初次登录

在浏览器打开你服务器的地址。
如果你之前在安装中没有提供root密码,你将会被引导至密码重设页面来为管理员用户设置密码。
初始用户名是root,登陆后你可以修改你的用户名。

开始使用吧!

你可以使用sudo service gitlab startsudo service gitlab stop来启动和停止 Gitlab 服务。

2.其他设置

开启 HTTPS 支持

a.放入证书和私钥文件

$ cd /etc/gitlab/
$ mkdir ssl

将证书文件和私钥文件放入/etc/gitlab/ssl文件夹。

b.修改配置文件/etc/gitlab/gitlab.rb

external_url 'https://git.xxxx.xxx'
nginx['redirect_http_to_https']=true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

重新部署 Gitlab:

$ gitlab-ctl reconfigure

c.修改nginx 配置文件

$ vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
  listen *:443 ssl http2;
  server_name git.xxxxx.xxx;
  server_tokens off; 
  client_max_body_size 0;
  ssl on;
  ssl_certificate /etc/gitlab/ssl/gitlab.pem;
  ssl_certificate_key /etc/gitlab/ssl/gitlab.key;
  .............................  #剩余的信息省略了
 }
 
server{
listen*:80;
server_name mygit.cnyunwei.cc;
rewrite^(.*)$https://$host$1permanent;
}

重启 Gitlab 服务:

$ gitlab-ctl restart

注意:防火墙记得添加放行443端口。

配置SMTP发送邮件

官方文档: https://docs.gitlab.com.cn/omnibus/settings/smtp.html#smtp-settings

同样是修改配置文件/etc/gitlab/gitlab.rb

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com" # SMTP 服务器地址
gitlab_rails['smtp_port'] = 465 # 端口,SSL是465
gitlab_rails['smtp_user_name'] = "gitlab@git.xxxxx.xxx" #发件地址/用户名
gitlab_rails['smtp_password'] = "ABcd123456" #密码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true #是否加密
gitlab_rails['gitlab_email_from'] = 'gitlab@git.xxxxx.xxx' #发件地址/用户名

重新部署 Gitlab 并重启 Gitlab 服务:

$ gitlab-ctl reconfigure
$ gitlab-ctl restart

官方给出了一个测试方法,登录到console 控制台进行测试:

$ gitlab-rails console
irb(main):003:0> Notify.test_email('gitlab@git.xxxxx.xxx', 'Test Page', 'This is test mail').deliver_now
#Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
最后修改:2017 年 12 月 17 日 09 : 40 PM
如果觉得我的文章对你有用,请随意赞赏