温馨提示×

Ubuntu中GitLab项目如何管理

小樊
33
2025-12-16 19:39:38
栏目: 智能运维

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
    • 执行:sudo apt-get install -y gitlab-ce
  • 配置与启动
    • 编辑:sudo vim /etc/gitlab/gitlab.rb,设置外部访问地址,例如:external_url 'http://gitlab.example.com'
    • 应用并启动:sudo gitlab-ctl reconfigure && sudo gitlab-ctl start
  • 访问与初始化
    • 浏览器访问服务器 IP/域名,首次登录设置管理员密码,进入管理界面。

二 组织与权限管理

  • 创建组织与成员
    • 在界面创建 Group/Subgroup,在 Group > Members 添加用户并分配角色。
  • 角色与可见性要点
    • 角色:Guest(仅议题/评论)、Reporter(克隆不可写)、Developer(开发/推送)、Maintainer(保护分支/标签/成员)、Owner(全权)。
    • 可见性:Private/Internal/Public
  • 项目成员与分支保护
    • 在项目 Settings > Members 邀请成员;在 Settings > Repository > Protected Branches 配置保护分支与权限。

三 代码托管与协作流程

  • 本地初始化与推送
    • 配置全局身份:git config --global user.name "Your Name"git config --global user.email "you@example.com"
    • 新建仓库:git clone <repo-url>cd <repo>git add .git commit -m "init"git push -u origin main/master
    • 已有仓库迁移:git remote rename origin old-origingit remote add origin <repo-url>git push -u origin --allgit push -u origin --tags
  • 分支与合并
    • 在 Web 端 Repository > Branches > New branch 创建分支;通过 Merge Requests 发起合并,启用 Code Review/WIP/流水线 保障质量。
  • 议题与 Wiki
    • 使用 Issues 管理需求/缺陷,使用 Wiki 维护项目文档。

四 CI/CD 与自动化

  • 启用内置 CI/CD
    • 在项目根目录创建 .gitlab-ci.yml,提交后自动触发流水线;在 Settings > CI/CD 配置变量、Runner、Artifacts/缓存。
  • 邮件与 HTTPS
    • 配置 SMTP(示例):gitlab_rails['smtp_enable']=truesmtp_address='smtp.example.com'smtp_port=587smtp_user_name='you@example.com'smtp_password='******'smtp_domain='example.com'smtp_authentication='login'smtp_enable_starttls_auto=true;执行 sudo gitlab-ctl reconfigure
    • 启用 HTTPS(Let’s Encrypt):sudo apt-get install certbot python3-certbot-nginx 获取证书;在 gitlab.rb 设置 nginx['redirect_http_to_https']=truenginx['ssl_certificate']='/etc/letsencrypt/live/example.com/fullchain.pem'nginx['ssl_certificate_key']='/etc/letsencrypt/live/example.com/privkey.pem';执行 sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart
  • 常见故障排查
    • 无法访问:检查防火墙放行 80/443/22,核对 external_url;权限问题:核对目录与服务权限;数据库问题:确认 PostgreSQL/MySQL 正常运行。

五 备份恢复与日常运维

  • 备份策略
    • 手动备份:sudo gitlab-backup create(默认目录 /var/opt/gitlab/backups
    • 自定义路径:在 gitlab.rb 设置 gitlab_rails['backup_path'] = "/new/backup/path" 并执行 sudo gitlab-ctl reconfigure
    • 自动备份:Cron 示例(每日 02:000 2 * * * /opt/gitlab/bin/gitlab-backup create STRATEGY=copy CRON=1
    • 保留策略:gitlab_rails['backup_keep_time'] = 7776000(保留 90 天
  • 恢复要点
    • 要求:新环境安装与备份相同版本的 GitLab,已完成 gitlab-ctl reconfigure
    • 步骤:将备份文件放到配置的 backup_path,确保属主为 git:git;停止连接服务 sudo gitlab-ctl stop pumasudo gitlab-ctl stop sidekiq;执行 sudo gitlab-backup restore BACKUP=<timestamp>(仅填时间戳,不含 _gitlab_backup.tar);重启 sudo gitlab-ctl restart;校验 sudo gitlab-rake gitlab:check SANITIZE=true
  • 常用运维命令
    • sudo gitlab-ctl status/start/stop/restart/tail;查看日志定位问题。

0