温馨提示×

Linux系统下GitLab如何搭建

小樊
39
2026-01-03 04:26:51
栏目: 智能运维

Linux下搭建 GitLab 实操指南

一 环境准备与资源建议

  • 操作系统:选择受支持的 Ubuntu/DebianCentOS/RHEL 等主流发行版,确保能访问互联网与包管理器源。
  • 硬件建议:至少 2 核 CPU4 GB 内存(生产环境推荐 8 GB+)、20 GB+ 磁盘,并预留后续增长空间。
  • 基础依赖:安装 curl、openssh-server、ca-certificates、tzdata、perl;邮件可选安装 Postfix
  • 网络与域名:准备可解析的 域名 或服务器 IP,并规划 HTTP/80、HTTPS/443 访问策略。

二 安装步骤 Ubuntu 或 Debian

  • 更新索引并安装依赖
    sudo apt-get update
    sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  • 添加 GitLab 官方仓库并安装
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    sudo apt-get install -y gitlab-ce
  • 首次配置与启动
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl start
  • 访问与初始化
    浏览器访问 http://服务器IP或域名,按向导设置 管理员密码 后登录。

三 安装步骤 CentOS 或 RHEL

  • 安装依赖(含邮件组件 Postfix)
    sudo yum install -y curl policycoreutils openssh-server postfix
    sudo systemctl enable --now postfix
  • 添加 GitLab 官方仓库并安装
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    sudo yum install -y gitlab-ce
  • 首次配置与启动
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl start
  • 访问与初始化
    浏览器访问 http://服务器IP或域名,按向导设置 管理员密码 后登录。

四 关键配置与运维要点

  • 核心配置文件与生效方式
    编辑 /etc/gitlab/gitlab.rb,设置例如 external_url ‘http://your-domain-or-ip’;每次修改后执行 sudo gitlab-ctl reconfigure 使配置生效。
  • 防火墙放行
    Ubuntu/Debian(UFW):sudo ufw allow ‘Nginx Full’;CentOS/RHEL(firewalld):sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。
  • 邮件通知(SMTP 示例)
    /etc/gitlab/gitlab.rb 中启用并填写:
    gitlab_rails[‘smtp_enable’] = true
    gitlab_rails[‘smtp_address’] = “smtp.example.com”
    gitlab_rails[‘smtp_port’] = 587
    gitlab_rails[‘smtp_user_name’] = “your_email@example.com”
    gitlab_rails[‘smtp_password’] = “your_password”
    gitlab_rails[‘smtp_domain’] = “example.com”
    gitlab_rails[‘smtp_authentication’] = “login”
    gitlab_rails[‘smtp_enable_starttls_auto’] = true
    gitlab_rails[‘smtp_tls’] = false
    执行:sudo gitlab-ctl reconfigure。
  • HTTPS 与证书
    方案 A(Certbot + Nginx 插件):sudo certbot --nginx -d your_domain.com,按提示自动配置证书与自动续期。
    方案 B(手动指定证书路径):在 gitlab.rb 中设置
    nginx[‘redirect_http_to_https’] = true
    nginx[‘ssl_certificate’] = “/etc/letsencrypt/live/your_domain.com/fullchain.pem”
    nginx[‘ssl_certificate_key’] = “/etc/letsencrypt/live/your_domain.com/privkey.pem”
    执行:sudo gitlab-ctl reconfigure。
  • 备份与恢复
    备份:sudo gitlab-backup create(生成时间戳备份于 /var/opt/gitlab/backups)。
    恢复:先停写服务(可选:sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq),再执行
    sudo gitlab-backup restore BACKUP=timestamp_of_backup
    恢复后启动服务:sudo gitlab-ctl start。
  • 常用运维命令
    启动/停止/重启/状态/重载:sudo gitlab-ctl {start|stop|restart|status|reconfigure}。

五 验证与常见问题

  • 安装验证
    访问 http://服务器IP或域名,完成管理员初始化后,创建 项目/用户,尝试 git clone / git push 验证功能正常。
  • 忘记管理员密码
    进入控制台:sudo gitlab-rails console
    执行:
    user = User.where(id: 1).first
    user.password = ‘NewStrongPassword123!’
    user.password_confirmation = ‘NewStrongPassword123!’
    user.save!
    退出并重启服务(如需要):sudo gitlab-ctl restart。
  • 运行缓慢或资源不足
    确认至少 4 GB 内存(生产建议 8 GB+),并优化存储与备份策略;必要时考虑更高规格实例或横向扩展方案。

0