美文网首页
Gitlab CE的部署

Gitlab CE的部署

作者: 湘港记者 | 来源:发表于2020-06-06 17:14 被阅读0次

我的博客: 菱歌's Blog | 听见美好
笔记原文地址:Gitlab CE的部署

许多小团队都有自建Gitlab的需求,我们这里使用免费的Gitlab CE(Community Edition)就可以了。官方的Omnibus部署已经很简单了,而且该有的配置都有,适合小团队使用,推荐!

Omnibus安装

完全按照官方指导进行,由于我是CentOS7系统,运行命令

安装一些依赖

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

添加Gitlab的源并安装

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://xxxxx" yum install -y gitlab-ce

这里推荐一个清华大学的TUNA镜像,在阿里云上速度由原来的100kb/s能到10MB/S+

Tips

同时,最新版本的Gitlab对配置要求越来越高,低配置的服务器可以安装Gitlab 10,这个版本亲测在1Core + 2GB的极低端服务器上也能跑起来,不过同时在线用户数量就不好说了,建议至少这个配置*2。

sudo EXTERNAL_URL="http://xxxxx" yum install -y gitlab-ce-10.1.4-ce.0.el7

HTTPS配置

证书生成

我使用的是阿里云提供的免费证书,可以在阿里云域名的控制面板下找到。


阿里云免费证书

也可以使用诸如Let's Encrypt的方案

阿里云生成的证书是*.pem*.key的密钥对,需要将pem密钥转换为crt格式:

openssl x509 -outform PEM -in gitlab.pem -out gitlab.crt

然后使用scp命令将证书上传到服务器

scp -r ./ssl root@xxxxx:/etc/gitlab/ssl

为了安全起见在服务器上将该目录修改权限为700

chmod -R 700 /etc/gitlab/ssl

Gitlab配置修改

/etc/gitlab/gitlab.rb进行修改。

external_url 'http://xxxxx'
external_url 'https://xxxxxx'

nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/xxxx.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/xxxx.key"

重启Gitlab

gitlab-ctl restart
gitlab-ctl reconfigure

邮箱配置

编辑配置文件vim /etc/gitlab/gitlab.rb,添加

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxx'
gitlab_rails['gitlab_email_display_name'] = 'xxxx Gitlab'

上面这一段各种邮箱都是相同的配置。

我使用的是阿里云的企业邮箱,需要使用不同邮箱的可以看配置列表

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@xxxxx"
gitlab_rails['smtp_password'] = "xxxxx"
gitlab_rails['smtp_domain'] = "xxxxx"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true

配置完成后需要reconfigure,可以通过命令测试是否已经配置好

gitlab-rails console

Notify.test_email('xxxxx@xxx.com', '邮件标题', '邮件正文').deliver_now

最终效果

输出http://domain会自动跳转到https://domain

Gitlab登录后页面

相关文章

网友评论

      本文标题:Gitlab CE的部署

      本文链接:https://www.haomeiwen.com/subject/rfqftktx.html