在 Linux 上使用 GitLab 进行项目管理的完整实践
一 环境准备与安装
- 准备一台 Linux 服务器(推荐 Ubuntu/Debian 或 CentOS/RHEL),确保至少 2–4GB 内存、20GB+ 磁盘,并开放 80/443(HTTP/HTTPS)与 22(SSH)端口。以 Ubuntu/Debian 为例,先安装依赖并添加官方仓库,然后安装 GitLab 社区版(CE):
- 安装依赖
- sudo apt-get update && sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
- 添加仓库并安装
- curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
- sudo apt-get install -y gitlab-ce
- 如为 CentOS/RHEL,使用 yum 安装脚本与包管理器完成同类步骤。以上流程适用于在 Linux 上搭建 GitLab 实例的基础环境。
二 首次配置与访问
- 配置访问地址:编辑 /etc/gitlab/gitlab.rb,设置外部访问域名或 IP
- external_url ‘http://your-domain-or-ip’
- 使配置生效并启动服务
- sudo gitlab-ctl reconfigure
- sudo gitlab-ctl start
- 访问与初始化:在浏览器打开配置的 external_url,首次进入按提示设置 管理员 root 密码,随后使用账号登录。以上完成 GitLab 在 Linux 上的部署与可访问性配置。
三 项目管理核心操作
- 创建与导入项目
- 登录后点击 New project 创建项目,选择 Private/Internal/Public 可见性;也可导入现有仓库(如本地 Git 项目或其他平台仓库)。
- 代码协作与分支策略
- 使用 Issues 管理任务与缺陷,配合 Labels/Milestones/Boards 做计划与进度跟踪;通过 Merge Requests(MR) 进行代码评审与讨论,结合 分支保护 策略保障主干稳定性。
- 权限与可见性
- GitLab 提供 Guest/Reporter/Developer/Maintainer/Owner 五级角色;项目可设为 私有/内部/公开,并可对关键分支设置保护规则与准入门槛。以上能力覆盖日常项目管理的需求。
四 CI/CD 自动化
- 在项目根目录创建 .gitlab-ci.yml 定义流水线,示例(构建与部署到测试/生产环境,使用 SSH 拉取更新):
- stages:
- deploy_test:
- image: instrumentisto/rsync-ssh:latest
- stage: deploy
- script:
- mkdir -p ~/.ssh
- echo -e “Host *\n\tStrictHostKeyChecking no\n” > ~/.ssh/config
- echo “$TEST_SSH_PRIVATE_KEY” >> ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh -p 22 -i ~/.ssh/id_rsa root@“$TEST_SERVER” “cd $TEST_PROJECT_PATH && git pull && source .venv/bin/activate && pip install -r requirements.txt”
- retry: 2
- only:
- deploy_prod:
- image: instrumentisto/rsync-ssh:latest
- stage: deploy
- script:
- mkdir -p ~/.ssh
- echo -e “Host *\n\tStrictHostKeyChecking no\n” > ~/.ssh/config
- echo “$PROD_SSH_PRIVATE_KEY” >> ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh -p 22 -i ~/.ssh/id_rsa root@“$PROD_SERVER” “cd $PROD_PROJECT_PATH && git pull && source .venv/bin/activate && pip install -r requirements.txt && supervisorctl restart server”
- retry: 2
- only:
- 提交该文件后,GitLab Runner 会自动执行构建、测试与部署;可在项目 Pipelines 页面查看任务状态与日志,便于快速定位问题。
五 安全运维与备份
- 安全与访问控制
- 建议启用 HTTPS(可通过 Let’s Encrypt 自动申请证书),并在系统防火墙放行 80/443/22;为不同成员分配最小必要权限,结合 分支保护 与 受保护环境 降低风险。
- 备份与恢复
- 创建备份:sudo gitlab-rake gitlab:backup:create(默认备份目录 /var/opt/gitlab/backups)
- 恢复备份:sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
- 常用运维命令
- 启动/停止/重启/状态/重载:sudo gitlab-ctl start|stop|restart|status|reconfigure
- 健康检查:sudo gitlab-rake gitlab:check
- 以上实践有助于保障 GitLab 实例的稳定运行与数据安全。