美文网首页
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