搭建Gitlab


Gitlab


硬件要求

  • 系统
    • CentOS(7/8)
      不支持MacOS、Windows
  • CPU
    • 推荐4核,最多可支持500个用户
    • 实测2核的也能安装成功
  • 内存
    • 4GB RAM是必需的最小内存大小,最多可支持500个用户
    • 8GB RAM最多可支持1000个用户

安装

官网地址

  1. 安装和配置openssh

    # 安装必要依赖
    sudo yum install -y curl policycoreutils-python openssh-server perl
    
    # 设置SSH开机自启动并启动SSH服务
    sudo systemctl enable sshd
    sudo systemctl start sshd
    
    # 系统防火墙中打开HTTP,HTTPS(可选)
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo systemctl reload firewalld
  2. 安装Postfix以发送通知电子邮件。如果要使用其他解决方案发送电子邮件,请跳过此步骤并 在安装GitLab之后配置外部SMTP服务器。

    sudo yum install postfix
    sudo systemctl enable postfix
    sudo systemctl start postfix

    在安装Postfix的过程中,可能会出现一个配置屏幕。选择“ Internet Site”,然后按Enter。使用服务器的外部DNS作为“mail name”,然后按Enter。如果出现其他屏幕,请继续按Enter接受默认设置。

  1. 添加GitLab社区 yum源

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  2. 添加GitLab软件包存储库并安装软件包

    4.1 安装最新版本。

    # 直接安装
    sudo yum install gitlab-ce
    # 修改url并取消交互
    sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce

    4.2 安装指定版本

    # 使用清华源下载13.5.3版本
    curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-13.5.3-ce.0.el8.x86_64.rpm
    # 安装
    rpm -i gitlab-ce-13.5.3-ce.0.el8.x86_64.rpm
  3. 浏览到主机名并登录 首次访问时,您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录。

修改配置

  1. 修改端口号和生成的ssh地址

    • 修改配置

      cd /opt/gitlab/embedded/service/gitlab-rails/config
      vi gitlab.yml
  2. 关闭CI、CD

    • 修改配置文件

      • 修改/etc/gitlab/gitlab.rbDefault project feature settings中信息
      • gitlab_rails['gitlab_default_projects_features_builds']修改为false,并解除注释
    • 刷新配置信息并重启

      gitlab-ctl reconfigure # 刷新配置信息
      gitlab-ctl restart #重启gitlab
  3. 减少内存占用

    • 减少进程数,官方推荐为CPU数+1,最小为2

      unicorn['worker_processes'] = 2
    • 减少内存泄漏监视进程内存阈值

      unicorn['worker_memory_limit_min'] = "200 * 1 << 20"
      unicorn['worker_memory_limit_max'] = "300 * 1 << 20"
    • 减少sidekiq并发数

      sidekiq['max_concurrency'] = 16
    • 减少数据库缓存

      postgresql['shared_buffers'] = "256MB"
    • 减少数据库并发

      postgresql['max_worker_processes'] = 8

版本升级

yum install gitlab-ce

备份与恢复

GitLab恢复需要与备份相同版本号,备份之前请先确定好版本。

  • 查看版本

    • 命令cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    • 或者在网页上查看help
  • 备份路径默认为/var/opt/gitlab/backups/,可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:

    gitlab_rails['backup_path'] = '/home/backup'

    /home/backup修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可。

开始操作

# 创建备份,文件名格式:[Unix时间戳]_[备份时间年月日]_[GitLab版本号]_gitlab_backup.tar
gitlab-rake gitlab:backup:create

# 停止数据连接服务(保证一致性)
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 从备份中恢复
# 将备份文件拷贝到/var/opt/gitlab/backups下
# 多个备份文件
gitlab-rake gitlab:backup:restore BACKUP=[Unix时间戳]
# 只有一个备份文件
gitlab-rake gitlab:backup:restore

# 启动GitLab
gitlab-ctl start
gitlab-ctl reconfigure

如果提示Permission denied,需要将备份文件授权给git用户

chown git /var/opt/gitlab/backups
chmod 700 /var/opt/gitlab/backups

  目录