GitLab企业版部署与许可证生成完整指南

发布于:2025-07-22 ⋅ 阅读:(12) ⋅ 点赞:(0)

一、背景

GitLab作为业界领先的DevOps平台,为企业提供了从代码管理到CI/CD的完整解决方案。然而,GitLab企业版需要有效的许可证才能解锁全部功能。本文将详细介绍如何通过Docker部署GitLab企业版,并生成永久许可证的完整过程。

二、环境准备

  • Linux服务器(Ubuntu/CentOS等)
  • Docker和Docker Compose已安装
  • 网络访问权限(需要访问GitHub和Docker Hub)

三、部署步骤

1. 创建目录结构

# 创建GitLab工作目录
cd /home
mkdir gitlab
cd gitlab/
mkdir data
mkdir license

# 设置环境变量
export GITLAB_HOME=$PWD/data

2. 生成GitLab许可证

2.1 克隆许可证生成器
git clone https://github.com/Lakr233/GitLab-License-Generator.git
cd GitLab-License-Generator
git checkout c512add083e0176c22a486de79761bc36e198217
cd ..
2.2 修改生成器脚本
diff --git a/make.sh b/make.sh
index 6aa858e..c090b83 100755
--- a/make.sh
+++ b/make.sh
@@ -91,7 +91,7 @@ mkdir -p "$BUILD_DIR"
 echo "[*] scanning features..."
 FEATURE_LIST_FILE=$BUILD_DIR/features.json
 rm -f "${FEATURE_LIST_FILE:?}" || true
-./src/scan.features.rb \
+ruby ./src/scan.features.rb \
     -o "$FEATURE_LIST_FILE" \
     -f "$GITLAB_SOURCE_CODE_DIR/features.rb"

@@ -110,7 +110,7 @@ echo "[*] generating license..."
 LICENSE_FILE=$BUILD_DIR/result.gitlab-license
 LICENSE_JSON_FILE=$BUILD_DIR/license.json

-./src/generator.license.rb \
+ruby ./src/generator.license.rb \
     -f "$FEATURE_LIST_FILE" \
     --public-key "$PUBLIC_KEY_FILE" \
     --private-key "$PRIVATE_KEY_FILE" \
2.3 构建Docker镜像
docker build GitLab-License-Generator -t gitlab-license-generator:main
2.4 生成许可证文件
# 创建并进入容器
docker run --rm -it \
  -v "./license:/license-generator/build" \
  -e LICENSE_NAME="Tim Cook" \
  -e LICENSE_COMPANY="Apple Computer, Inc." \
  -e LICENSE_EMAIL="tcook@apple.com" \
  -e LICENSE_PLAN="ultimate" \
  -e LICENSE_USER_COUNT="2147483647" \
  -e LICENSE_EXPIRE_YEAR="2500" \
  gitlab-license-generator:main bash

# 容器内执行生成脚本
bash make.sh  

# 退出容器
exit

# 查看license目录结构
tree license/

生成的许可证文件结构

license/
├── features.json
├── license.json
├── private.key
├── public.key             # 需要映射到GitLab容器内
└── result.gitlab-license  # 许可证文件

3. 创建Docker Compose配置文件

cat > docker-compose.yml <<-'EOF'
version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ee:latest
    container_name: gitlab
    restart: always
    hostname: '172.16.1.10'
    ports:
      - '3080:80'
      - '3443:443'
      - '3022:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
      - './license/public.key:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub'
      - '$PWD/tools:/tools'
    shm_size: '256m'
EOF

4. 启动GitLab容器

4.1 初始启动
# 拉取镜像
docker pull gitlab/gitlab-ee

# 删除容器
docker compose down

# 创建容器
docker compose up -d

# 查看日志
docker logs gitlab

# 进入容器
docker exec -it gitlab bash

# 查看默认密码
grep 'Password:' /etc/gitlab/initial_root_password

输出默认密码

Password: UBz5N+CZwcDFWrFPzhGtH1glJOiNw2mCJvKAih0nJgg=
4.2 修改GitLab配置

编辑配置文件 /etc/gitlab/gitlab.rb

external_url 'http://172.16.1.10'
gitlab_rails['gitlab_ssh_host'] = '172.16.1.10'
gitlab_rails['gitlab_shell_ssh_port'] = 3022
gitlab_rails['usage_ping_enabled'] = false

请添加图片描述

4.3 应用配置更改
# 重新配置GitLab
gitlab-ctl reconfigure

# 修改Rails配置文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

更新内容:

gitlab:
  host: 172.16.1.10
  port: 3080
  https: false

请添加图片描述

4.4 重启服务
gitlab-ctl restart

5. 通过Web界面激活许可证

  1. 访问 http://172.16.1.10:3080
  2. 使用root用户和初始密码登录
  3. 进入 Admin Area > Settings > General > Add License
  4. 上传 result.gitlab-license 文件
  5. 验证许可证信息
    请添加图片描述
  • 添加授权文件

请添加图片描述

  • 确认授权成功
    请添加图片描述

四、结语

通过本文的步骤,您已经成功部署了带有永久许可证的GitLab企业版。这种部署方式适合中小型企业环境,提供了完整的DevOps解决方案。GitLab的强大功能包括CI/CD流水线、容器注册表、安全扫描等,现在都可以免费使用了!

部署要点总结

  1. 许可证生成是部署的关键步骤
  2. 配置文件修改确保正确访问
  3. Docker部署简化了环境管理
  4. 定期备份$GITLAB_HOME目录

建议在生产环境中添加定期备份策略,并配置HTTPS访问以增强安全性。


网站公告

今日签到

点亮在社区的每一天
去签到