温馨提示×

如何在CentOS上自定义GitLab

小樊
35
2025-11-01 13:36:45
栏目: 智能运维

在CentOS上自定义GitLab的完整步骤

一、前置准备

  1. 系统更新与依赖安装
    更新系统软件包并安装必要依赖,确保后续安装顺利:

    sudo yum update -y
    sudo yum install -y curl policycoreutils-python openssh-server postfix perl
    
    • policycoreutils-python:用于配置SELinux策略(若启用SELinux);
    • postfix:默认邮件服务,用于GitLab通知(可替换为其他SMTP服务)。
  2. 防火墙配置
    开放HTTP(80)、HTTPS(443)及SSH(22)端口,允许外部访问GitLab界面和管理服务:

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

二、安装GitLab

  1. 添加GitLab官方仓库
    通过脚本添加GitLab社区版(CE)的YUM仓库,确保获取最新版本:

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
  2. 安装GitLab CE
    使用YUM安装GitLab,可通过EXTERNAL_URL参数预先设置外部访问地址(如http://your_server_ip):

    sudo EXTERNAL_URL="http://your_server_ip" yum install -y gitlab-ce
    
  3. 启动GitLab服务
    初始化配置并启动GitLab,设置开机自启:

    sudo gitlab-ctl reconfigure  # 应用初始配置
    sudo gitlab-ctl start        # 启动服务
    sudo systemctl enable gitlab-runsvdir.service  # 开机自启
    

三、基础自定义配置

  1. 修改外部访问URL
    编辑GitLab主配置文件/etc/gitlab/gitlab.rb,调整external_url为你的域名或IP(如http://gitlab.example.com),并同步修改Nginx监听端口(若有需要):

    external_url 'http://gitlab.example.com'
    # 若修改端口,需同步调整nginx['listen_port']
    # nginx['listen_port'] = 8080
    

    保存后应用配置并重启服务:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  2. 配置邮件通知
    /etc/gitlab/gitlab.rb中设置SMTP参数,实现邮件发送功能(以QQ邮箱为例):

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "your_qq@qq.com"
    gitlab_rails['smtp_password'] = "your_authorization_code"  # 使用QQ授权码而非密码
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = 'your_qq@qq.com'
    gitlab_rails['smtp_domain'] = "qq.com"
    

    应用配置后重启GitLab:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  3. 修改界面语言
    登录GitLab后,点击右上角头像→PreferencesLocalization,选择所需语言(如“简体中文”),点击Save Preferences即可生效。

四、进阶自定义配置

  1. 修改默认存储目录
    若需更改Git仓库的默认存储路径,编辑/etc/gitlab/gitlab.rb,调整git_data_dirs配置:

    git_data_dirs({"default" => {"path" => "/home/gitlab/repos"}})
    

    保存后执行以下命令迁移数据并重启服务:

    sudo rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab/repos  # 迁移旧数据
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  2. 调整默认端口
    若需修改GitLab的SSH端口(如从22改为2222),编辑/etc/gitlab/gitlab.rb

    gitlab_rails['gitlab_shell_ssh_port'] = 2222
    

    同步修改系统SSH配置(/etc/ssh/sshd_config)中的Port参数,重启SSH服务:

    sudo systemctl restart sshd
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  3. 配置HTTPS(可选但推荐)
    申请SSL证书(如Let’s Encrypt),编辑/etc/gitlab/gitlab.rb,设置external_urlhttps://并配置证书路径:

    external_url 'https://gitlab.example.com'
    nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
    nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
    

    应用配置并重启服务:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

五、维护与优化

  1. 定期备份
    使用GitLab内置工具创建备份,指定备份目录(如/opt/gitlab/backups):

    sudo gitlab-backup create STRATEGY=copy
    

    设置定时任务(如每天凌晨2点备份):

    sudo crontab -e
    # 添加以下内容
    0 2 * * * /opt/gitlab/bin/gitlab-backup create STRATEGY=copy
    
  2. 更新GitLab
    定期检查并更新GitLab至最新稳定版本,确保安全性:

    sudo yum update -y gitlab-ce
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
  3. 监控与日志
    使用Prometheus+Grafana监控GitLab性能,或通过gitlab-ctl tail查看实时日志,快速定位问题。

0