Ubuntu24.04如何部署gitlab

在 Ubuntu 24.04 上部署 GitLab 有多种方式,以下是几种常见的方法:

方法一:使用官方 Omnibus 包(推荐)

1. 安装必要依赖

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl

2. 添加 GitLab 官方仓库

# 信任 GitLab GPG 密钥
curl -fsSL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo gpg --dearmor -o /etc/apt/keyrings/gitlab.gpg

# 添加仓库
echo "deb [signed-by=/etc/apt/keyrings/gitlab.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list

3. 安装 GitLab CE

sudo apt update
sudo apt install gitlab-ce

4. 配置 GitLab

# 编辑配置文件
sudo nano /etc/gitlab/gitlab.rb

# 修改关键配置(根据你的环境调整)
external_url 'http://your-domain.com'  # 或 'http://your-server-ip'

5. 重新配置并启动

sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

# 查看状态
sudo gitlab-ctl status

方法二:使用 Docker 部署

1. 安装 Docker

sudo apt update
sudo apt install -y docker.io docker-compose

# 启动 Docker 服务
sudo systemctl enable --now docker

2. 创建 docker-compose.yml

mkdir gitlab-docker && cd gitlab-docker
nano docker-compose.yml
version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://your-server-ip'
        # 可添加其他配置
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    shm_size: '256m'

3. 启动 GitLab

docker-compose up -d

# 查看日志
docker-compose logs -f

方法三:使用 Snap 包(最简单)

# 安装 Snap(如果未安装)
sudo apt update
sudo apt install -y snapd

# 安装 GitLab
sudo snap install gitlab-ce

# 配置
sudo snap set gitlab-ce external-url="http://your-server-ip"

# 等待配置完成(大约需要几分钟)
sudo gitlab-ctl reconfigure

初始配置和访问

1. 获取初始 root 密码

# Omnibus 安装
sudo cat /etc/gitlab/initial_root_password

# Docker 安装
docker exec -it gitlab-docker_web_1 grep 'Password:' /etc/gitlab/initial_root_password

2. 访问 GitLab

  • 打开浏览器访问:http://your-server-ip

  • 使用用户名:root

  • 使用上面获取的密码

3. 常用管理命令

# 查看状态
sudo gitlab-ctl status

# 启动/停止/重启服务
sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart

# 查看日志
sudo gitlab-ctl tail

# 重新配置
sudo gitlab-ctl reconfigure

# 更新 GitLab
sudo apt update
sudo apt install gitlab-ce
sudo gitlab-ctl reconfigure

配置优化建议

1. 调整资源配置

编辑 /etc/gitlab/gitlab.rb

# 根据服务器内存调整
puma['worker_processes'] = 2  # 默认为 CPU 核心数
sidekiq['concurrency'] = 10   # 默认为 25

# PostgreSQL 配置
postgresql['shared_buffers'] = "256MB"
postgresql['max_worker_processes'] = 8

# Redis 配置
redis['maxmemory'] = "256mb"

2. 配置电子邮件

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-password"
gitlab_rails['smtp_domain'] = "gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = 'your-email@gmail.com'

3. 启用 HTTPS(需要域名和 SSL 证书)

external_url 'https://gitlab.example.com'

# 使用 Let's Encrypt
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
letsencrypt['auto_renew'] = true

防火墙配置

# 开放必要端口
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo ufw allow 22/tcp  # Git over SSH

# 启用防火墙
sudo ufw enable
sudo ufw status

备份和恢复

# 创建备份
sudo gitlab-backup create

# 备份存储在 /var/opt/gitlab/backups/
# 恢复备份(需要先停止服务)
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
sudo gitlab-ctl start

常见问题解决

1. 502 错误

# 检查服务状态
sudo gitlab-ctl status

# 查看日志
sudo gitlab-ctl tail nginx
sudo gitlab-ctl tail puma

2. 内存不足

# 增加交换空间
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久添加
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

3. 启动缓慢

首次启动需要较长时间(10-30分钟),请耐心等待。

系统要求建议

  • 最低配置:4GB RAM,2 CPU 核心,10GB 存储

  • 推荐配置:8GB RAM,4 CPU 核心,50GB+ 存储

  • 支持 100 用户以上:16GB RAM,8 CPU 核心,100GB+ 存储

选择哪种方式取决于你的需求:

  • 生产环境:推荐 Omnibus 包

  • 测试/开发:Docker 或 Snap

  • 快速体验:Snap 最简单

关键词:Linux运维gitlab

<< 上一篇

对容器进行压测

网友留言(0 条)

发表评论

验证码