centos

GitLab在CentOS上的使用技巧

小樊
54
2025-09-26 09:26:46
栏目: 智能运维

GitLab在CentOS上的使用技巧

一、安装与初始配置

  1. 依赖包准备:安装前需确保系统具备必要组件,执行sudo yum install -y curl policycoreutils-python openssh-server postfix,覆盖SSH服务、邮件发送(Postfix)等依赖。
  2. 添加GitLab官方源:通过脚本快速配置YUM源,提升软件包安装可靠性。执行curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  3. 安装GitLab社区版:使用YUM安装最新稳定版,命令为sudo yum install -y gitlab-ce
  4. 基础配置与启动:编辑/etc/gitlab/gitlab.rb设置external_url(如http://your_server_ip),执行sudo gitlab-ctl reconfigure应用配置,再通过sudo gitlab-ctl start启动服务。

二、日常使用技巧

  1. 创建用户与项目:登录GitLab管理界面,点击左上角头像→“New User”创建用户(设置用户名、密码、邮箱);在组内点击“New project”,输入项目名称(如my-project),选择.gitignore模板(如Python、Java)和许可证(如MIT),完成项目创建。
  2. 使用SSH密钥认证:本地终端执行ssh-keygen -t rsa -C "your_email@example.com"生成密钥对,将公钥(cat ~/.ssh/id_rsa.pub)复制到GitLab用户设置的“SSH Keys”中,实现免密推送/拉取代码。
  3. 基于分支的开发模式:避免直接修改main/master分支,通过git checkout -b feature/login创建特性分支,开发完成后发起Pull Request,通过代码审查后合并到主分支,保障主分支稳定性。
  4. 命令行高效操作:使用git clone http://your_server_ip/my-project.git克隆项目;git add .添加修改;git commit -m "fix: resolve login bug"提交代码(描述需清晰);git push origin feature/login推送分支,简化日常代码管理。

三、性能优化技巧

  1. 硬件配置调整:GitLab是内存密集型应用,推荐配置8核CPU+8GB以上内存+SSD存储(至少50GB),显著提升响应速度。
  2. 网络参数优化:调整TCP参数提高并发能力,执行sudo sysctl -w net.ipv4.tcp_tw_reuse=1(复用TIME-WAIT连接)、net.ipv4.tcp_max_syn_backlog=8192(增加SYN队列长度)、net.core.somaxconn=65535(提升监听端口队列大小),并通过sysctl -p使配置生效。
  3. GitLab配置调优:修改/etc/gitlab/gitlab.rb,调整Unicorn worker数量(unicorn['worker_processes'] = 4,根据CPU核心数设置);启用HTTP/2(nginx['enable'] = truenginx['ssl_protocols'] = "TLSv1.2 TLSv1.3")提升传输效率;开启Keep-Alive(nginx['keepalive_timeout'] = 65)减少连接建立开销。
  4. 使用Git LFS管理大文件:对于超过100MB的文件(如视频、数据集),安装Git LFS(git lfs install),通过git lfs track "*.psd"指定跟踪类型,执行git add .gitattributes提交配置,避免大文件拖慢仓库速度。

四、安全配置技巧

  1. 启用HTTPS加密:申请SSL证书(如Let’s Encrypt免费证书),将证书路径配置到/etc/gitlab/gitlab.rbnginx['ssl_certificate'] = "/etc/letsencrypt/live/your_domain/fullchain.pem"nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your_domain/privkey.pem",执行sudo gitlab-ctl reconfigure重启服务,强制使用HTTPS访问。
  2. 配置防火墙规则:开放必要端口(SSH:22、HTTP:80、HTTPS:443),执行sudo firewall-cmd --permanent --add-port=22/tcpsudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=443/tcp,然后sudo firewall-cmd --reload应用规则,阻止非法访问。
  3. 细化权限管理:采用RBAC(基于角色的访问控制),为项目分配角色(Guest、Reporter、Developer、Maintainer、Owner),限制用户对敏感操作(如删除仓库、修改权限)的访问;通过“Settings”→“Members”管理项目成员权限。

五、CI/CD集成技巧

  1. 配置.gitlab-ci.yml文件:在项目根目录创建.gitlab-ci.yml,定义流水线阶段(stages)和作业(jobs)。例如,测试阶段执行npm test,部署阶段推送镜像到Docker Hub:
    stages:
      - test
      - deploy
    test_job:
      stage: test
      script:
        - npm install
        - npm test
    deploy_job:
      stage: deploy
      script:
        - docker build -t your_dockerhub_username/my-app:$CI_COMMIT_SHORT_SHA .
        - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
        - docker push your_dockerhub_username/my-app:$CI_COMMIT_SHORT_SHA
    
    保存后,GitLab会自动触发流水线,实时查看执行状态。
  2. 安装与配置GitLab Runner:Runner负责执行CI/CD作业,执行sudo yum install -y gitlab-runner安装;注册Runner(sudo gitlab-runner register),输入GitLab实例URL、注册令牌(在项目“Settings”→“CI/CD”→“Runners”中获取)、执行器类型(推荐docker),配置完成后,Runner会自动监听流水线任务并执行。

六、备份与恢复技巧

  1. 定期创建备份:使用GitLab内置命令备份数据,执行sudo gitlab-rake gitlab:backup:create,默认备份路径为/var/opt/gitlab/backups,备份文件包含数据库、仓库、附件等所有数据。
  2. 恢复备份数据:若需恢复,停止相关服务(sudo gitlab-ctl stop unicornsudo gitlab-ctl stop sidekiq),执行sudo gitlab-rake gitlab:backup:restore BACKUP=2025-09-26-120000(替换为备份文件名),恢复完成后启动服务(sudo gitlab-ctl start)。
  3. 自动化备份策略:通过Cron定时任务实现自动备份,编辑/etc/crontab,添加0 2 * * * root /usr/bin/gitlab-rake gitlab:backup:create CRON=1,表示每天凌晨2点执行备份,并将输出发送到指定邮箱(如root@example.com)。

0
看了该问题的人还看了