GitLab Linux服务器部署步骤是什么
小樊
51
2025-11-14 22:49:21
Linux服务器部署GitLab步骤
一 准备与环境要求
- 操作系统:选择主流发行版,如 Ubuntu/Debian 或 CentOS/RHEL。
- 硬件建议:至少 2 核 CPU、4 GB 内存、20 GB 磁盘(生产环境建议更高规格)。
- 网络与端口:确保可访问互联网,并开放 HTTP 80 与 HTTPS 443;如需 SSH 克隆,开放 22。
- 权限与工具:以 root 或具备 sudo 权限的用户执行;准备可解析的 域名 或服务器 IP。
- 邮件(可选):如需发送通知,准备 SMTP 信息。
二 安装与配置
- 安装依赖
- Ubuntu/Debian:
sudo apt update && sudo apt install -y curl openssh-server ca-certificates tzdata perl
- CentOS/RHEL:
sudo yum update && sudo yum install -y curl policycoreutils-python openssh-server postfix
sudo systemctl enable --now postfix
- 添加官方仓库
- Ubuntu/Debian:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
- CentOS/RHEL:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- 安装 GitLab CE
- Ubuntu/Debian:sudo apt install -y gitlab-ce
- CentOS/RHEL:sudo yum install -y gitlab-ce
- 配置外部访问地址
- 编辑:sudo vim /etc/gitlab/gitlab.rb
- 设置:external_url ‘http://your_domain_or_ip’(后续启用 HTTPS 可改为 https://)
- 初始化与启动
- 使配置生效:sudo gitlab-ctl reconfigure(首次执行耗时较长)
- 重启服务:sudo gitlab-ctl restart
- 常用运维:
- 查看状态:sudo gitlab-ctl status
- 停止/启动:sudo gitlab-ctl stop / start
- 查看日志:sudo gitlab-ctl tail
三 访问与安全加固
- 访问与初始化
- 浏览器访问:输入 http://your_domain_or_ip,按向导设置 管理员密码 并创建首个用户。
- SSH 克隆:在本机生成密钥并添加至 GitLab(方便免密拉取/推送)。
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
- 防火墙放行
- Ubuntu(UFW):
sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw enable
- CentOS(firewalld):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
- 启用 HTTPS(推荐)
- 使用 Let’s Encrypt + Certbot(已安装 Nginx 时):
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
- 或在 /etc/gitlab/gitlab.rb 中配置 letsencrypt 自动申请与续期(详见官方文档)。
四 常见问题与运维要点
- 端口冲突:若 Unicorn/Nginx 端口被占用,可在 /etc/gitlab/gitlab.rb 中调整 unicorn[‘port’],然后执行 sudo gitlab-ctl reconfigure。
- 日志排查:
- Rails 应用日志:sudo tail -f /var/log/gitlab/gitlab-rails/production.log
- Nginx 错误日志:sudo tail -f /var/log/gitlab/nginx/error.log
- 完全卸载(谨慎):
- 停止服务:sudo gitlab-ctl stop
- 卸载软件包:sudo apt remove --purge gitlab-ce 或 sudo yum remove gitlab-ce
- 清理残留文件与数据(请先备份):find / -name “gitlab” -exec rm -rf {} +(按需选择性删除)。