温馨提示×

ubuntu上gitlab项目如何管理

小樊
33
2025-12-18 19:24:33
栏目: 智能运维

Ubuntu 上 GitLab 项目管理实操指南

一 安装与初始化

  • 安装依赖与添加仓库
    • 执行:sudo apt update && sudo apt install -y curl openssh-server ca-certificates postfix
    • 添加仓库:curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  • 安装 GitLab(社区版 CE;如需企业版 EE 将 ce 改为 ee)
    • 执行:sudo apt install -y gitlab-ce
  • 配置访问地址并初始化
    • 编辑:sudo vim /etc/gitlab/gitlab.rb,设置 external_url 'http://你的域名或IP'
    • 初始化:sudo gitlab-ctl reconfigure && sudo gitlab-ctl start
  • 首次登录
    • 浏览器访问 http://你的域名或IP,设置管理员密码后进入管理界面。

二 组织与权限管理

  • 用户与组
    • 创建组(Group)用于团队聚合,创建用户并加入组;在组或项目层面统一设置成员权限与可见性。
  • 项目可见性与成员角色
    • 项目可见性:Private / Internal / Public
    • 成员角色与能力要点:
      • Guest:查看、评论、创建 Issue
      • Reporter:克隆代码、查看,不可提交
      • Developer:克隆、提交、创建分支、合并请求
      • Maintainer:管理成员、保护分支、标签、CI/CD 等
      • Owner:项目设置、转让、删除等最高权限
  • 权限落地
    • 项目级:进入项目 → Settings → Members 添加成员并分配角色
    • 组级:进入组 → Members 统一授权,组内的项目可继承权限策略。

三 代码协作与分支策略

  • 基本流程
    • 克隆仓库:git clone <项目URL>
    • 提交与推送:git add .git commit -m "..."git push origin main
  • 分支与保护
    • Repository → Branches 创建功能分支;在 Settings → Repository → Protected branches 设置保护分支(如 main),仅允许 Maintainer 合并,必要时开启 Code Owner 审核。
  • 合并请求(MR)
    • 创建 MR → 指定评审人 → 关联 Issue → 通过流水线后合并;可在 Settings → CI/CD → General pipelines 配置分支触发规则。
  • 问题跟踪与 Wiki
    • 使用 Issues 管理需求/缺陷,配合标签、里程碑、权重;用 Wiki 维护项目文档。

四 CI/CD 与自动化

  • 快速入门
    • 在项目根目录创建 .gitlab-ci.yml,示例:
      stages:
        - build
        - test
        - deploy
      
      build_job:
        stage: build
        script:
          - echo "Building..."
          - make build
      
      test_job:
        stage: test
        script:
          - echo "Testing..."
          - make test
      
      deploy_prod:
        stage: deploy
        script:
          - echo "Deploying..."
        only:
          - main
      
    • 推送后自动触发流水线;在 CI/CD → Pipelines 查看任务日志与状态。
  • 通知与邮件
    • 如需邮件通知,在 /etc/gitlab/gitlab.rb 配置 SMTP 并 sudo gitlab-ctl reconfigure 使配置生效。

五 备份恢复与运维安全

  • 备份
    • 手动备份:sudo gitlab-backup create(默认归档至 /var/opt/gitlab/backups
    • 自动备份:在 root 的 crontab 添加
      • 0 2 * * * /opt/gitlab/bin/gitlab-backup create STRATEGY=copy CRON=1
    • 备份保留:在 /etc/gitlab/gitlab.rb 设置 gitlab_rails['backup_keep_time'] = 7776000(保留 90 天,单位秒)
  • 恢复
    • 将备份文件放到配置的备份目录并修正属主:sudo chown git:git /var/opt/gitlab/backups/时间戳_gitlab版本号_gitlab_backup.tar
    • 停止相关服务:sudo gitlab-ctl stop puma && sudo gitlab-ctl stop sidekiq
    • 执行恢复(BACKUP 为时间戳,不含后缀):sudo gitlab-backup restore BACKUP=时间戳_gitlab版本号
    • 重启与检查:sudo gitlab-ctl restart,随后可执行 gitlab-rake gitlab:check SANITIZE=true 等校验
  • 重要提示
    • 备份归档不包含 /etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json,需单独手动备份;恢复时版本需与备份时保持一致或兼容
  • 运维与安全
    • 常用运维:sudo gitlab-ctl status/start/stop/restart/tail
    • 防火墙放行:sudo ufw allow 80,443,22/tcp
    • 建议启用 HTTPS(如 Let’s Encrypt)并配置强密码与 MFA,遵循最小权限原则。

0