温馨提示×

GitLab在Ubuntu上的部署步骤是什么

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

Ubuntu 上部署 GitLab 的标准步骤

一 环境准备与资源建议

  • 操作系统:建议使用 Ubuntu 20.04/22.04 LTS,可通过 SSH 登录并具有 sudo 权限。
  • 硬件建议:至少 4GB 内存(推荐 8GB+)2 核 CPU(推荐 4 核+)10GB 磁盘(推荐 20GB+),以保证服务稳定与后续扩展。
  • 主机名与网络:设置静态 hostname,确保可解析;如通过域名访问,确保 DNS A 记录 指向服务器 IP。
  • 防火墙与安全组:开放 HTTP(80)HTTPS(443)SSH(22) 端口(云服务器需在控制台安全组放行)。

二 安装方式一 Omnibus 包安装(推荐)

  • 更新系统并安装依赖
    • 执行:sudo apt update && sudo apt upgrade -y
    • 安装:sudo apt install -y curl openssh-server ca-certificates tzdata perl
    • 可选(邮件通知):sudo apt install -y postfix,安装向导中选择 Internet Site 并设置系统 hostname
  • 添加 GitLab 官方仓库并安装
    • 添加仓库:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    • 安装社区版(CE)并指定访问地址:sudo EXTERNAL_URL="http://<YOUR_DOMAIN_OR_IP>" apt install gitlab-ce -y
  • 初始化配置并启动
    • 执行:sudo gitlab-ctl reconfigure(首次会生成配置并启动服务)
  • 访问与首次登录
    • 浏览器访问:http://<YOUR_DOMAIN_OR_IP>
    • 默认管理员用户名为 root;初始密码位于 /etc/gitlab/initial_root_password,该文件在 24 小时后自动删除,请尽快登录并修改密码。

三 安装方式二 Docker 部署(可选)

  • 安装 Docker(如未安装)
    • 执行:sudo apt update && sudo apt install -y docker.io
  • 运行 GitLab 容器(CE)
    • 执行:
      docker run --detach \
        --hostname <YOUR_DOMAIN_OR_IP> \
        --publish 443:443 --publish 80:80 --publish 22:22 \
        --name gitlab \
        --restart always \
        --volume /srv/gitlab/config:/etc/gitlab \
        --volume /srv/gitlab/logs:/var/log/gitlab \
        --volume /srv/gitlab/data:/var/opt/gitlab \
        gitlab/gitlab-ce:latest
      
  • 获取初始 root 密码
    • 执行:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
  • 访问方式与端口映射
    • 浏览器访问:http://<YOUR_DOMAIN_OR_IP>;如需修改端口,调整 -p 映射(例如将主机 8080:80)。

四 常用运维与安全配置

  • Omnibus 常用命令
    • 启动/停止/重启/状态/日志:sudo gitlab-ctl start|stop|restart|status|tail
  • 防火墙放行(UFW)
    • 执行:sudo ufw allow http && sudo ufw allow https && sudo ufw allow ssh
  • 启用 HTTPS(两种方式)
    • Let’s Encrypt(推荐,需公网域名与解析):在 /etc/gitlab/gitlab.rb 中设置
      • external_url "https://<YOUR_DOMAIN>"
      • letsencrypt['enable'] = true
      • letsencrypt['contact_emails'] = ['admin@<YOUR_DOMAIN>']
      • 执行:sudo gitlab-ctl reconfigure
    • 自签名证书:在 /etc/gitlab/ssl/ 放置证书与密钥,并在 /etc/gitlab/gitlab.rb 中设置
      • external_url "https://<YOUR_DOMAIN>"
      • nginx['ssl_certificate'] = "/etc/gitlab/ssl/<YOUR_DOMAIN>.crt"
      • nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/<YOUR_DOMAIN>.key"
      • 执行:sudo gitlab-ctl reconfigure
  • 备份与恢复
    • 备份:sudo gitlab-rake gitlab:backup:create(备份文件默认位于 /var/opt/gitlab/backups
    • 恢复:sudo gitlab-rake gitlab:backup:restore BACKUP=<timestamp>
  • 资源优化(低配环境)
    • /etc/gitlab/gitlab.rb 中适当降低并发与缓存占用,例如:
      • puma['worker_processes'] = 2
      • sidekiq['concurrency'] = 5
      • postgresql['shared_buffers'] = "256MB"
      • gitlab_rails['db_pool'] = 5
    • 修改后执行:sudo gitlab-ctl reconfigure

0