GitLab企業版部署與許可證生成完整指南

GitLab企業版部署與許可證生成完整指南

    • 一、背景
    • 二、環境準備
    • 三、部署步驟
      • 1. 創建目錄結構
      • 2. 生成GitLab許可證
        • 2.1 克隆許可證生成器
        • 2.2 修改生成器腳本
        • 2.3 構建Docker鏡像
        • 2.4 生成許可證文件
      • 3. 創建Docker Compose配置文件
      • 4. 啟動GitLab容器
        • 4.1 初始啟動
        • 4.2 修改GitLab配置
        • 4.3 應用配置更改
        • 4.4 重啟服務
      • 5. 通過Web界面激活許可證
    • 四、結語

一、背景

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.jsonrm -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-licenseLICENSE_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:latestcontainer_name: gitlabrestart: alwayshostname: '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.10port: 3080https: 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訪問以增強安全性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92335.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92335.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92335.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jenkins 不同節點間文件傳遞:跨 Job 與 同 Job 的實現方法

在日常的 DevOps 運維實踐中&#xff0c;Jenkins 通常被用于串聯多個自動化流程&#xff0c;而這些流程往往需要在不同的構建節點&#xff08;agent&#xff09;上執行。例如&#xff0c;在以下場景中&#xff1a; &#x1f4cc; 場景需求描述&#xff08;實際問題&#xff09;…

Java中AQS原理

一、核心架構&#xff1a;AQS抽象隊列同步器二、AQS核心機制1. 三大核心組件&#xff1a;state狀態變量&#xff1a;volatile int&#xff0c;表示鎖狀態&#xff08;0未鎖定&#xff0c;≥1鎖定/重入次數&#xff09;CLH隊列&#xff1a;雙向鏈表實現的線程等待隊列Node節點&a…

深入理解程序鏈接機制:靜態鏈接、ELF加載與動態庫實現原理

目錄 一、靜態鏈接 1、靜態鏈接的基本概念 1. 靜態鏈接實例分析 2. 目標文件分析 3. 關鍵觀察 4. 重定位機制 5. 注意事項 2、靜態鏈接過程詳解 1. 目標文件反匯編分析&#xff08;上面已分析&#xff09; 2. 符號表分析 code.o 符號表 hello.o 符號表 3. 鏈接后的…

python基礎復習

復習python基礎語法,最好能做到使用python 寫一些簡單的算法。 1基礎基礎語法 1.0 輸入輸出 一個實用的print:format函數print(站點列表 {0}, {1}, 和 {other}。.format(Google, Runoob, other=Taobao)) 站點列表 Google, Runoob, 和 Taobao。print("a", "b…

ZLMediaKit 入門

什么是ZLMediaKit&#xff1f; ZLMediaKit 是一個基于C11的高性能流媒體服務器框架&#xff0c;支持RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV等多種流媒體協議。它具有以下特點&#xff1a; 跨平臺支持&#xff08;Linux、Windows、macOS&#xff09; 高性能&#xff0c;支持高…

接口測試Postman工具高級使用技巧

目錄 一、環境與變量的深度應用 多環境動態切換 動態變量與腳本生成 二、Pre-request Script 的妙用 參數簽名/加密 接口依賴處理 三、Test Script 的進階斷言 復雜 JSON Schema 校驗 數據庫斷言 四、數據驅動測試 CSV/JSON 文件驅動 動態生成測試用例 環境與變量的…

ZooKeeper學習專欄(四):單機模式部署與基礎操作詳解

文章目錄前言一、單機模式部署架構圖部署流程&#xff1a;二、zkCli.sh命令行工具基礎操作三、ACL權限控制實踐學習資源前言 本文是Zookeeper學習系列的第四篇&#xff0c;將詳細講解Zookeeper的單機模式部署過程以及基礎命令行操作&#xff0c;包括節點管理、Watcher機制和AC…

靜態登錄界面

代碼&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用戶登錄</title><st…

Three.js 全景圖(Equirectangular Texture)教程:從加載到球面映射

全景圖(Equirectangular Texture)是一種特殊的 2D 圖像,能通過數學轉換模擬 360 環繞視角,常用于創建沉浸式環境(如虛擬全景、天空盒替代方案)。本文將通過完整示例,帶你掌握 Three.js 中全景圖的加載、映射原理與實際應用。 什么是全景圖(Equirectangular Texture)?…

Rocky Linux 9 快速安裝 Node.js

Rocky Linux 9 快速安裝 Node.js 大家好&#xff0c;我是星哥&#xff01;今天給大家帶來 Rocky Linux 9 環境下 Node.js 的安裝教程。 本文將詳細介紹兩種安裝方法&#xff0c;幫你快速搭建穩定的 Node.js 環境。 Node.js 是一個非常流行的 JavaScript 運行時環境&#xff…

.NET依賴注入IOC你了解嗎?

IOC在Web API 中是經常使用的&#xff0c;但是在一些WPF項目并不是經常使用或者被人熟知的&#xff0c;我把相關依賴注入的內容又做了一次學習和整理什么是依賴注入&#xff1f; 依賴注入是一種設計模式和軟件設計原則&#xff0c;用于實現 控制反轉。它的核心思想是&#xff1…

Python----大模型(基于Fastapi+streamlit的機器人對話)

一、準備工作 1.1、魔搭社區下載大模型 通義千問2.5-7B-Instruct 模型庫 from modelscope.hub.snapshot_download import snapshot_download llm_model_dir snapshot_download(Qwen/Qwen2.5-7B-Instruct,cache_dirmodels) 1.2、啟動vllm大模型 python -m vllm.entrypoint…

前端面試專欄-工程化:29.微前端架構設計與實踐

&#x1f525; 歡迎來到前端面試通關指南專欄&#xff01;從js精講到框架到實戰&#xff0c;漸進系統化學習&#xff0c;堅持解鎖新技能&#xff0c;祝你輕松拿下心儀offer。 前端面試通關指南專欄主頁 前端面試專欄規劃詳情 微前端架構設計與實踐 一、微前端核心概念與價值 …

Spring Boot音樂服務器項目-上傳音樂模塊

項目結構圖 相較于上次新增集中在這些地方&#xff1a; &#x1f680; 上傳音樂的核心流程 前端投遞&#xff1a;用戶填寫歌手名 選擇MP3文件 后端接收&#xff1a;/music/upload 接口化身音樂快遞員 安全驗證&#xff1a;先查用戶是否“持證上崗”&#xff08;登錄態&#…

2025年遠程桌面軟件深度評測:ToDesk、向日葵、TeamViewer全方位對比分析

隨著遠程辦公和數字化協作的深入發展&#xff0c;遠程桌面軟件已經成為個人用戶和企業的必備工具。在2025年的今天&#xff0c;遠程控制軟件市場呈現出百花齊放的態勢&#xff0c;其中ToDesk、向日葵和TeamViewer作為市場上的三大主流選擇&#xff0c;各自在技術創新、性能優化…

深度學習-全連接神經網絡2

六、反向傳播算法 反向傳播&#xff08;Back Propagation&#xff0c;簡稱BP&#xff09;算法是用于訓練神經網絡的核心算法之一&#xff0c;它通過計算損失函數&#xff08;如均方誤差或交叉熵&#xff09;相對于每個權重參數的梯度&#xff0c;來優化神經網絡的權重。 1、前…

C語言的歷史

C 語言是一種 通用的、過程式的編程語言&#xff0c;由 丹尼斯里奇&#xff08;Dennis Ritchie&#xff09; 在 1972 年于貝爾實驗室開發。它以 高效、靈活、貼近硬件 而著稱&#xff0c;廣泛應用于系統軟件、嵌入式系統、驅動程序、游戲引擎、數據庫系統等底層開發領域。 C語…

jupyter使用

啟動win rcmdjupyter notebook創建python文件

linux 環境服務發生文件句柄泄漏導致服務不可用

問題描述&#xff1a;服務調用遠程rest接口 報錯&#xff0c;發生too many open files 異常&#xff0c;系統句柄資源耗盡&#xff0c;導致服務不可用。排查經過&#xff1a;1、針對報錯代碼進行本地構建&#xff0c;構造異常&#xff0c;并進行壓測。問題未復現2、經過討論分析…

手機錄制視頻時,硬編碼和軟編碼哪個質量高?(硬件編碼、軟件編碼)

文章目錄**1. 畫質對比**- **軟編碼**&#xff1a;- **硬編碼**&#xff1a;**2. 性能與功耗**- **軟編碼**&#xff1a;- **硬編碼**&#xff1a;**3. 實際應用中的權衡****4. 現代手機的折中方案****5. 如何選擇&#xff1f;****總結**在手機錄制視頻時&#xff0c; 軟編碼的…