Gitlab私有化部署及配置


最近项目的版本管理工具准备切换成Git,服务端的话进行了选型,发现GitLab CE版本(社区版本:免费开源)的,也就是社区版能够满足需求,因此进行了部署,在此进行了记录,安装文档参考自Gitlab的官方安装文档

环境准备

硬件准备

一台内存超过4G的服务器,硬盘容量自己看着办,毕竟后期是用来做版本管理服务器的,如果太小的话,存储的文件空间肯定也小

软件准备

  • CentOS7:我这里使用的Minimal版本的,利于发现部署中的问题,以便在生产环境中碰到类似问题可以尽快处理
  • DNS:配置好DNS,以供后面域名地址能够解析
  • 域名:一个域名,用来解析到对应的服务器上,这个尽量准备,安装过程中会用到
  • SSL证书:认证https的时候会用到,后面会写到如何在腾讯云上如何获取证书

安装步骤

这块的文档参考自CentOS7安装GitLab

安装和配置必要的依赖

  1. 安装必要的依赖

    1
    2
    3
    4
    5
    6
    7
    sudo yum install -y curl policycoreutils-python openssh-server perl
    sudo systemctl enable sshd
    sudo systemctl start sshd

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo systemctl reload firewalld
  2. 安装Postfix
    安装Postfix用作发送邮件通知。如果说不需要,可以跳过此步。也可以使用自己的SMTP服务器,配置方案见这里

    1
    2
    3
    sudo yum install postfix
    sudo systemctl enable postfix
    sudo systemctl start postfix

    在安装Postfix的过程中,有可能会弹出配置页面信息。选择“Internet Site”,然后点击回车。

添加Gitlab包仓库并安装

  1. 添加GitLab包仓库
    1
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    上面的这个地址中,官网上引导的是ee版本的,也就是企业版,这里我改成了gitlab-ce版本的,也就是社区版
  2. 安装GitLab包,确保上面配置了正确的DNS。
    说明: 下面的这个地址(https://gitlab.example.com)需要改成你自己的域名,用作GitLab访问和发送邮件使用
    1
    sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce
  3. 等待安装完成后(如果你的服务器配置比较低的话,访问页面会显示502,这个不用担心,等待一会大概十来分钟之后再访问就好了),就可以通过域名进行访问(前提是需要做好映射工作,不管是用frp也好,还是直接用公网IP指向你的服务器也好)了,当然也可以通过内网地址的80端口进行访问了

SSL配置

目前基本的配置都已经完成,但是你会发现在浏览器中访问的时候,浏览器会提示你这个是不安全的访问连接,因此需要配置下自己的证书

证书申请和安装

  1. 证书申请
  2. 申请完成后,进行下载,下载下来的文件夹解压之后如下
  3. 备份服务器上/etc/gitlab/ssh(这里如果找不到这个目录,需要创建下,并设置权限为755)目录下的crtkey文件
    1
    2
    mv xxx.xxx.cn.crt xxx.xxx.cn.crt.20210205.bak
    mv xxx.xxx.cn.key xxx.xxx.cn.key.20210205.bak
  4. 上传Nginx文件夹下的crtkey文件到服务器的/etc/gitlab/ssh文件夹下
  5. 配置gitlab.rb文件,将文件中的external_url "https://gitlab.example.com"属性修改为你自己的域名,设置letsencrypt['enable'] = false
    1
    vi /etc/gitlab/gitlab.rb
  6. 重新配置GitLab
    1
    sudo gitlab-ctl reconfigure
  7. 如果使用了防火墙,还需要开放防火墙的端口
    1
    2
    sudo firewall-cmd --permanent --add-service=https
    sudo systemctl reload firewalld

日志配置

实时日志查看

如果说你只是想看下实时的日志信息,可以使用如下命令

1
2
3
4
5
6
7
8
# 查看所有组件的日志
sudo gitlab-ctl tail

# Drill down to a sub-directory of /var/log/gitlab
sudo gitlab-ctl tail gitlab-rails

# Drill down to an individual file
sudo gitlab-ctl tail nginx/gitlab_error.log

日志配置默认路径

默认情况下,gitlab的日志会存储在/var/logs/gitlab下,可以直接切到该路径下,查看对应组件的日志(nginx的、数据库的呀)即可,如果想要修改gitlab的默认日志,可以在/etc/gitlab/gitlab.rb文件

1
2
3
4
# For example:
gitlab_rails['log_directory'] = "/var/log/gitlab/gitlab-rails"
puma['log_directory'] = "/var/log/gitlab/puma"
registry['log_directory'] = "/var/log/gitlab/registry"

完事之后,还需要执行以下重新配置的命令,来完成配置

1
gitlab-ctl reconfigure