温馨提示×

GitLab在Debian下的使用教程

小樊
37
2025-11-01 07:15:23
栏目: 智能运维

GitLab在Debian下的使用教程

一、安装GitLab

1. 准备工作

首先更新系统软件包并安装必要依赖,确保系统环境符合安装要求:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates postfix tzdata

其中,postfix用于GitLab的邮件通知(安装时可选择“Internet Site”配置,输入服务器域名即可)。

2. 添加GitLab官方仓库

通过官方脚本添加GitLab社区版(CE)的APT仓库,确保后续能获取最新版本:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

该脚本会自动配置GitLab的软件源和GPG密钥。

3. 安装GitLab CE

使用APT命令安装GitLab社区版:

sudo apt install gitlab-ce

安装过程中,系统会提示确认依赖项和配置文件,按提示操作即可。

4. 初始配置与启动

编辑GitLab主配置文件/etc/gitlab/gitlab.rb,设置服务器外部访问地址(替换为你的服务器IP或域名):

sudo nano /etc/gitlab/gitlab.rb
# 找到并修改以下行(取消注释并替换)
external_url 'http://your_server_ip_or_domain'

保存后,执行以下命令应用配置并启动GitLab服务:

sudo gitlab-ctl reconfigure  # 应用配置
sudo gitlab-ctl start       # 启动服务
sudo systemctl enable gitlab # 设置开机自启

若需通过域名访问,需确保域名已解析到服务器IP,并配置SSL证书(可通过Let’s Encrypt免费获取)。

二、访问与基础配置

1. 访问GitLab Web界面

在浏览器中输入http://your_server_ip_or_domain,首次访问需设置管理员账号(默认用户名root)的密码。密码会保存在/etc/gitlab/initial_root_password文件中(有效期24小时)。

2. 配置邮件服务(可选但推荐)

为支持通知功能(如密码重置、合并请求提醒),需配置SMTP邮件服务。编辑/etc/gitlab/gitlab.rb,添加以下配置(以Gmail为例):

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'your_email@gmail.com'
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'] = true

保存后重新配置GitLab:

sudo gitlab-ctl reconfigure

测试邮件发送:进入GitLab控制台(sudo gitlab-rails console),执行Notify.test_email('recipient@example.com', 'Test Subject', 'Test Body').deliver_now

3. 配置防火墙(可选)

若启用了UFW防火墙,需允许GitLab使用的端口(HTTP 80、HTTPS 443、SSH 22):

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable

若使用外部Nginx反向代理,需额外开放代理端口(如8080)。

三、创建与管理项目

1. 创建项目

登录GitLab后,点击左侧导航栏“Projects”→右上角“New project”,选择“Create blank project”(空白项目)或“Create from template”(模板项目),填写项目名称(如my-project)、描述,选择可见性(Private/Private/Internal/Public),点击“Create project”即可。

2. 配置SSH密钥(推荐)

为避免每次推送代码都输入密码,需配置SSH密钥:

  • 本地机器生成密钥(若已有可跳过):
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    默认保存路径为~/.ssh/id_rsa.pub
  • 将公钥添加到GitLab:
    复制公钥内容(cat ~/.ssh/id_rsa.pub),登录GitLab→点击右上角头像→“Settings”→“SSH Keys”,粘贴公钥并保存。

3. 克隆与推送代码

  • 克隆项目仓库到本地:
    git clone git@your_server_ip_or_domain:username/my-project.git
    cd my-project
    
  • 创建文件并推送:
    touch README.md
    git add .
    git commit -m "Initial commit"
    git push origin main  # 若初始分支为master,替换为master
    

四、使用CI/CD自动化

1. 安装GitLab Runner

GitLab Runner用于执行CI/CD任务,需单独安装:

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
sudo apt install gitlab-ci-multi-runner

注册Runner(替换为你的GitLab服务器URL和项目注册令牌):

sudo gitlab-runner register

按提示输入信息,选择“shell”作为执行器(适合简单任务)。

2. 配置CI/CD流水线

在项目根目录创建.gitlab-ci.yml文件,定义流水线流程(示例):

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    - mkdir -p build
    - echo "Build successful" > build/result.txt
  artifacts:
    paths:
      - build/

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - test -f build/result.txt && echo "Tests passed" || echo "Tests failed"

deploy_job:
  stage: deploy
  script:
    - echo "Deploying to production..."
    - scp -r build/* user@production-server:/var/www/html/
  only:
    - main  # 仅在main分支推送时触发

提交代码到仓库,GitLab会自动触发流水线。进入项目→“CI/CD”→“Pipelines”,可查看流水线状态和日志。

五、权限管理

GitLab通过角色控制项目成员权限,常见角色包括:

  • Owner(所有者):拥有项目完全控制权(可删除项目、管理成员)。
  • Maintainer(维护者):可推送代码、创建分支、管理Issue和Merge Request。
  • Developer(开发者):可推送代码、创建分支,但不能管理项目设置。
  • Reporter(报告者):可查看代码、提交Issue,但不能推送代码。
  • Guest(访客):仅能查看项目信息。

设置方法:进入项目→“Settings”→“Members”,添加成员并分配角色。

六、备份与恢复

1. 备份数据

使用GitLab自带的gitlab-backup命令备份数据(默认备份路径为/var/opt/gitlab/backups):

sudo gitlab-backup create

可添加--full参数进行完整备份(包含数据库和仓库数据)。

2. 恢复数据

停止GitLab服务,恢复备份文件(替换为备份文件名),然后重启服务:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-backup restore BACKUP=timestamp_of_backup  # 如BACKUP=2025_11_01_123456
sudo gitlab-ctl start

恢复前需确保GitLab版本与备份版本一致。

0