【开发配置】云服务器配置Gitlab服务

☁️ 云服务器配置 GitLab 指南

1. 环境准备

  • 一台云服务器(推荐 4C 8G 内存以上,系统建议 Ubuntu 20.04/22.04 LTSCentOS 7/8

  • 一个可访问的公网 IP

  • 开放端口:

    • 22 (SSH)

    • 80 (HTTP)

    • 443 (HTTPS,推荐配置 SSL)

    • 5050 (可选:容器镜像仓库)


2. 安装 GitLab

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

复制代码
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装依赖
sudo apt install -y curl openssh-server ca-certificates tzdata perl

# 添加 GitLab 官方仓库并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://your-domain.com" apt install -y gitlab-ee

如果不需要企业版,可换成 gitlab-ce

安装完成后访问:

👉 http://your-domain.com

首次登录会提示设置 root 密码。


方法二:使用 Docker 部署(更轻量)

复制代码
docker run --detach \
  --hostname gitlab.example.com \
  --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

3. 基本配置

编辑配置文件:

复制代码
sudo vim /etc/gitlab/gitlab.rb

常见配置项:

复制代码
external_url 'http://gitlab.example.com'   # 改为域名或公网IP
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'

应用配置:

复制代码
sudo gitlab-ctl reconfigure

4. 配置域名与 HTTPS(推荐)

  1. 在云服务商控制台绑定域名到服务器 IP

  2. 使用 Let's Encrypt 免费证书

    复制代码
    sudo vim /etc/gitlab/gitlab.rb

    修改:

    复制代码
    external_url "https://gitlab.example.com"
    letsencrypt['enable'] = true
  3. 重新加载:

    复制代码
    sudo gitlab-ctl reconfigure

5. 用户与权限管理

  • 首次进入 GitLab Web,设置 root 密码

  • 创建用户(开发者、运维等)

  • 创建 Group → Project

  • Settings → Repository → Protected branches 配置分支保护


6. CI/CD 配置(可选)

在云端 GitLab 上,你可以:

  1. 安装 GitLab Runner(用于执行 CI/CD Pipeline)

    复制代码
    curl -L --output /usr/local/bin/gitlab-runner \
      https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    sudo chmod +x /usr/local/bin/gitlab-runner
    sudo gitlab-runner install
    sudo gitlab-runner start
  2. 注册 Runner:

    复制代码
    sudo gitlab-runner register

    按提示输入 GitLab URL 和 Token。


7. 企业常见优化

  • 备份与恢复

    复制代码
    gitlab-rake gitlab:backup:create
  • 性能优化:开启 Redis + 外部数据库(PostgreSQL)

  • 高可用:用 Nginx + GitLab 多节点(适合大规模企业)

  • 监控:启用 Prometheus / Grafana


📌 总结

  1. 云服务器开通端口

  2. 安装 GitLab(Omnibus 包 或 Docker)

  3. 配置域名 + HTTPS

  4. 配置用户、组、项目、CR 规则

  5. (可选)安装 GitLab Runner 实现 CI/CD


8. 写一个 一键部署 GitLab 的 Shell 脚本

🚀 一键安装 GitLab Shell 脚本

bash 复制代码
#!/bin/bash
#
# GitLab 一键安装脚本 (Ubuntu 20.04/22.04)
# 作者: ChatGPT
# 注意: 默认安装 GitLab CE (社区版),如需 EE 可改 gitlab-ce -> gitlab-ee
#

set -e

# 默认配置
GITLAB_DOMAIN=${1:-"gitlab.example.com"}   # 域名或公网IP,支持传参
GITLAB_PACKAGE="gitlab-ce"
EXTERNAL_URL="http://${GITLAB_DOMAIN}"

echo "==============================="
echo " 🚀 开始安装 GitLab"
echo " 域名/IP: $GITLAB_DOMAIN"
echo "==============================="

# 更新系统
echo "👉 更新系统..."
sudo apt update -y && sudo apt upgrade -y

# 安装依赖
echo "👉 安装依赖..."
sudo apt install -y curl openssh-server ca-certificates tzdata perl

# 添加 GitLab 官方仓库
echo "👉 添加 GitLab 官方仓库..."
curl -sS https://packages.gitlab.com/install/repositories/gitlab/${GITLAB_PACKAGE}/script.deb.sh | sudo bash

# 安装 GitLab
echo "👉 安装 GitLab..."
sudo EXTERNAL_URL="${EXTERNAL_URL}" apt install -y ${GITLAB_PACKAGE}

# 初始化配置
echo "👉 配置 GitLab..."
sudo gitlab-ctl reconfigure

# 输出 root 初始密码
echo "👉 获取初始 root 密码:"
sudo cat /etc/gitlab/initial_root_password

echo "==============================="
echo " ✅ GitLab 安装完成"
echo " 访问地址: ${EXTERNAL_URL}"
echo " 初始用户名: root"
echo " 初始密码文件: /etc/gitlab/initial_root_password"
echo "==============================="

🔧 使用方法

  1. 上传脚本到云服务器,例如保存为 install_gitlab.sh

  2. 赋予执行权限:

bash 复制代码
chmod +x install_gitlab.sh
  1. 执行脚本(支持传入域名或公网 IP):
bash 复制代码
./install_gitlab.sh gitlab.yourdomain.com

或者直接用 IP:

bash 复制代码
./install_gitlab.sh 192.168.0.102

安装完成后,可以通过 http://域名 或 IP 访问 GitLab,首次登录用户名是 root,密码在 /etc/gitlab/initial_root_password 文件里。

相关推荐
拾心2121 分钟前
【运维进阶】高可用和负载均衡技术
运维·负载均衡
hyy279522768442 分钟前
自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信
运维·kubernetes·自动化
wuyang-ligerj1 小时前
OSPF协议(三)
运维·网络·网络协议·智能路由器
一川月白7091 小时前
Linux--->网络编程(TCP并发服务器构建:[ 多进程、多线程、select ])
linux·运维·服务器·网络编程·io并发服务器
EnigmaCoder1 小时前
【Linux】用户与用户组管理
linux·运维·服务器·数据库
TG_yilongcloud2 小时前
AWS亚马逊云账号注册指南
服务器·云计算·aws
池易2 小时前
Debian/Ubuntu 系统 Redis 安装部署
运维
tan77º2 小时前
【项目】分布式Json-RPC框架 - 抽象层与具象层实现
linux·服务器·c++·分布式·tcp/ip·rpc·json
柯南二号2 小时前
【开发配置】GitLab CR(Code Review)规则配置清单
gitlab·代码复审