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