快速搭建私有 Gitlab 服务器

因为 Github 被收购,跟风创建了个 Gitlab 账号却完全不知道怎么用。翻阅了一些博客之后大概懂了一点,现在分享一下搭建思路。

前期准备

  1. 关闭 Selinux(属于不是非常了解Selinux的无奈之举)
  2. 关闭防火墙(Firewalld,Iptables)或开放相应端口

安装 Omnibus Gitlab-ce Package

  1. 安装 Gitlab 的必要组件 ( Curl, Policycoreutils, Openssh-server, Openssh-clients, Postfix)
  2. 配置提供 Gitlab 的 YUM 仓库
  3. 启用 Postfix 邮件服务
  4. 安装 Gitlab-ce

Omnibus Gitlab 配置初始化

配置思路

  1. 创建安全证书与配置私有密钥加载
  2. 配置 Nginx 使其支持 SSL
  3. 初始化 Gitlab

具体方法

  • 创建自签名证书
    1. 创建 Private Key
    2. 生成 Certificate Request
    3. 移除Private Key 中的密码短语
    4. 创建证书
    5. 移除证书请求文件
    6. 设置文件权限
    # openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.domain.com.key 2048
    # openssl req -new -key /etc/gitlab/ssl/gitlab.domain.com.key -out /etc/gitlab/ssl/gitlab.domain.com.csr
    # cp -v /etc/gitlab/ssl/gitlab.domain.com.{key,original}
    # openssl rsa -in /etc/gitlab/ssl/gitlab.domain.com.original -out /etc/gitlab/ssl/gitlab.domain.com.key
    # rm -v /etc/gitlab/ssl/gitlab.domain.com.original
    # openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.domain.com.csr -signkey /etc/gitlab/ssl/gitlab.domain.com.key -out /etc/gitlab/ssl/gitlab.domain.com.crt
    # rm -v /etc/gitlab/ssl/gitlab.domain.com.csr  
    # chmod 600 /etc/gitlab/ssl/gitlab.domain.com.*
    
  • Gitlab 配置更改
    1. 开启 Https 外部链接
    2. 将 Http 重定向为 Https
    3. 在持续交付中启用 Https
    4. 复制证书到 Gitlab 目录
    #! /etc/gitlab/gitlab.rb 
    external_url 'https://gitlab.domain.com'
    ...
    nginx['redirect_http_to_https'] = true
    ...
    ci_nginx['redirect_http_to_https'] = true
    
    # cp /etc/gitlab/ssl/etc/gitlab/ssl/gitlab.domain.com.crt /etc/gitlab/trusted-certs/
    

常用操作

  1. 重新加载配置
    # gitlab-ctl reconfigure
    
  2. 重启
    # gitlab-ctl restart
    
  3. 关闭本地 SSL 认证
    # git config --global http.sslVerify false
    

参考资料

评论