linux

如何在Linux上自定义GitLab

小樊
37
2025-10-16 10:02:53
栏目: 智能运维

如何在Linux上自定义GitLab
在Linux环境下自定义GitLab需围绕配置文件修改、功能扩展、界面调整及部署优化四大方向展开,以下是具体步骤及注意事项:

一、准备工作:安装GitLab基础环境

在自定义前需完成GitLab的安装与环境配置,确保系统满足基础要求:

  1. 系统要求:推荐使用Ubuntu 20.04+、CentOS 7/8或Debian 10+;CPU≥2核、内存≥4GB、磁盘≥20GB(根据项目规模调整)。
  2. 安装依赖
    • Ubuntu:sudo apt update && sudo apt install -y curl openssh-server ca-certificates tzdata perl
    • CentOS:sudo yum install -y curl policycoreutils-python-utils openssh-server perl
  3. 添加GitLab官方仓库
    • Ubuntu:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    • CentOS:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  4. 安装GitLab社区版(CE)或企业版(EE)
    • Ubuntu:sudo apt install -y gitlab-ce
    • CentOS:sudo yum install -y gitlab-ce

二、核心配置:通过gitlab.rb文件自定义

/etc/gitlab/gitlab.rb是GitLab的主配置文件,几乎所有自定义操作都需通过修改此文件实现,修改后需运行sudo gitlab-ctl reconfigure使配置生效。

  1. 修改外部访问URL
    设置external_url为服务器IP或域名(如http://192.168.1.100https://gitlab.example.com),这是GitLab对外访问的核心入口:
    external_url 'http://192.168.1.100'
    
  2. 配置邮件通知
    若需GitLab发送提交提醒、密码重置等邮件,需配置SMTP服务(以Gmail为例):
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.gmail.com"
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "your_email@gmail.com"
    gitlab_rails['smtp_password'] = "your_app_password"  # 使用Gmail应用专用密码
    gitlab_rails['smtp_domain'] = "smtp.gmail.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false
    
  3. 启用HTTPS加密
    使用Let’s Encrypt生成免费SSL证书,提升数据传输安全性:
    • 安装Certbot:sudo apt install -y certbot python3-certbot-nginx(Ubuntu)
    • 生成证书:sudo certbot certonly --standalone -d gitlab.example.com
    • 配置GitLab:
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
      
  4. 调整端口设置
    若需修改GitLab默认端口(80/443),可修改external_url及Nginx监听端口:
    external_url 'http://192.168.1.100:8080'
    nginx['listen_port'] = 8080
    
  5. 配置存储路径
    若需更改项目、日志或配置文件的存储位置,可修改以下参数:
    gitlab_rails['gitlab_shell_ssh_port'] = 2222  # 修改SSH端口
    gitlab_rails['data_dir'] = "/mnt/gitlab_data"  # 修改数据存储路径
    

三、界面与功能扩展

  1. 修改界面语言
    登录GitLab后,进入设置 → 界面,选择“中文(简体)”或其他语言,即时生效。
  2. 添加自定义主题
    GitLab支持通过CSS覆盖默认主题,需将自定义CSS文件放置在/var/opt/gitlab/gitlab-rails/public/assets/目录下,并通过Nginx配置引用。
  3. 启用高级功能(仅EE版)
    若使用GitLab企业版(EE),可通过管理界面开启代码审查、CI/CD流水线、监控告警、项目管理等高级功能,无需额外配置。
  4. 安装第三方插件
    GitLab支持通过插件扩展功能(如Jira集成、Slack通知),需进入管理 → 插件市场,搜索并安装所需插件,安装后需重启GitLab服务。

四、部署优化:提升稳定性与性能

  1. 使用Docker Compose部署
    通过Docker简化GitLab的安装与管理,创建docker-compose.yml文件:
    version: '3.6'
    services:
      gitlab:
        image: gitlab/gitlab-ce:latest
        container_name: gitlab
        restart: always
        ports:
          - '8080:80'
          - '8443:443'
          - '2222:22'
        volumes:
          - './config:/etc/gitlab'
          - './logs:/var/log/gitlab'
          - './data:/var/opt/gitlab'
        shm_size: '256m'
    
    启动容器:docker-compose up -d,获取初始root密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password
  2. 配置系统服务管理
    使用Systemd管理GitLab服务,确保开机自启动:
    sudo systemctl enable gitlab-runsvdir.service  # 启用开机自启动
    sudo systemctl start gitlab-runsvdir.service   # 启动服务
    sudo systemctl status gitlab-runsvdir.service  # 查看服务状态
    
  3. 配置防火墙
    若使用UFW防火墙,允许HTTP、HTTPS及SSH流量:
    sudo ufw allow 'Nginx Full'
    sudo ufw allow OpenSSH
    sudo ufw enable
    
  4. 优化性能
    • 增加虚拟内存(Swap):sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile,并将配置写入/etc/fstab
    • 调整GitLab资源限制:在gitlab.rb中修改unicorn['worker_processes'](默认2,可根据CPU核心数调整)及sidekiq['concurrency'](默认10,可根据内存调整)。

五、注意事项

0
看了该问题的人还看了