文章都可以转载、引用,标明转载出处即可。

Gitlab 安装,配置HTTPS证书、配置SMTP

Linux应用 Mr.c 8797℃ 0评论

  GitHub 大家应该非常的熟悉了,目前非常有名的代码托管网站,但是GitHub 毕竟是国外的,国内不管是提交还是拖代码经常出错,并且需要创建私有库是需要付费的。
  企业里面代码托管是必不可少的,如果单纯的安装一个Git仓库服务,那是非常简单的,详情请看:
《Centos 搭建Git服务器》
  Git服务没有管理界面,对于ssh公钥的添加,版本库的增加都需要上服务器进行操作,这是很繁琐的,正好就有一个类似于GitHub的开源系统GitLab 满足大家的需求。
  GitLab 是基于Ruby语言开发的,另外用了redis 和postgresql 数据库,手动安装非常的麻烦,官方提供了一键安装包: https://www.gitlab.com.cn/downloads/#centos7
  GitLab 服务较多,如果是正式的使用建议至少要4G内存以上服务器进行安装。
系统版本:CentOS Linux release 7.3.1611 (Core)

一:安装GitLab服务

  官方安装默认会安装postfix 作为邮件服务发送注册用户通知等使用,但是这样很容易被拦截,而且很多IDC服务商已经封锁了25端口,无法直接通过postfix发信,所以这里采用SMTP方式配置邮件。
1.安装系统依赖

[root@gitlab ~] yum -y  install curl policycoreutils openssh-server openssh-clients

  由于个人还是习惯iptables 防火墙,所以安装iptables ,并放行SSH服务22端口,80端口和443端口,详情请看 《Centos 7 启用iptables》
2.运行安装GitLab 源

[root@gitlab ~] curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
[root@gitlab ~] yum -y  install gitlab-ce

3.初始化GitLab服务

[root@gitlab ~] gitlab-ctl reconfigure

  这里执行命令后会进行系统初始化,初始化完成后gitlab服务就已经完成了,如果没有特殊需求就已经可以使用了。默认GitLab 是安装到/opt/gitlab 目录,配置文件在/etc/gitlab/下

二:配置HTTPS证书

  现在国内很多IDC 服务商都代理了赛门铁克的免费SSL证书,这里就不介绍了,可以看下该博文 《免费申请阿里云DV SSL证书》 去阿里云或者腾讯云去申请。
1.创建证书存放目录,并放入证书。

[root@gitlab gitlab] cd /etc/gitlab/
[root@gitlab gitlab] mkdir ssl
[root@gitlab gitlab] ll ssl/
total 16
-rw-r--r-- 1 root root 1679 May  9 10:27 gitlab.key
-rw-r--r-- 1 root root 3900 May  9 10:27 gitlab.pem

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

[root@gitlab gitlab] vim  /etc/gitlab/gitlab.rb
external_url 'https://mygit.cnyunwei.cc'  #这里就填写您申请的gitlab证书域名地址
nginx['redirect_http_to_https']=true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

更新Gitlab配置:

[root@gitlab ~] gitlab-ctl reconfigure

3.修改nginx 配置文件
  这里建议直接修改原配置文件端口,并开启ssl

[root@gitlab gitlab] vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
  listen *:443 ssl http2;
  server_name mygit.cnyunwei.cc;
  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:

[root@gitlab ~] gitlab-ctl restart

  注意防火墙记得添加放行443端口,然后就可以访问配置的域名进行测试了。

三:配置SMTP发送邮件

  官方已经给出了详细配置方法了 https://docs.gitlab.com.cn/omnibus/settings/smtp.html#smtp-settings
  目前大部分IDC 都封了25端口,需要配置465加密端口才可以发送邮件,这也是为什么不用postfix的原因,以下为阿里云企业邮配置(和腾讯企业邮相同):

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "no-reply@cnyunwei.cc"
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'] = 'no-reply@cnyunwei.cc'

重新载入配置文件:

[root@gitlab ~] gitlab-ctl restart

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

[root@gitlab ~] gitlab-rails console
irb(main):003:0> Notify.test_email('cnblog@cnyunwei.cc', 'Test Page', 'This is test mail').deliver_now
#Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

  如果发送失败建议先通过postfix 等邮件客户端工具配置该发信邮箱测试是否能够通过SMTP方式发送邮件,另外smtp地址如果已经额外加了解析为自己的smtp.cnyunwei.cc 等方式,也建议直接配置为企业邮箱提供的smtp地址。

转载请注明:菜鸟运维 » Gitlab 安装,配置HTTPS证书、配置SMTP

喜欢 (2)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. Gitlab安装太麻烦了,对服务器要求也不低,所以我选择了gogs
    小z博客2017-05-23 23:02 回复
    • 如果是自己个人用来托管的话,搞gitlab确实是太浪费了,但是公司需要呀。
      Mr.c2017-05-24 16:50 回复
  2. 修改配置文件/etc/gitlab/gitlab.rb那里 nginx的enable也要设置为true
    E02019-11-13 08:25 回复