小型CI/CD搭建(TODO)

1 方案

因為是在國內,所以gitbub Actions,??Azure DevOps?這些就直接拜拜了。

目前主流的大概是三種:

1 阿里云效/騰訊云CODING

2 GitLab CE+?GitLab Runner

3 Gitee + Jenkins?

deepeseek比較了一下如下:

阿里云效 vs GitLab vs Jenkins 核心對比表??

??維度????阿里云效(阿里云 DevOps)????GitLab(自托管版)????Jenkins(自托管)??
??部署方式??全托管 SaaS自托管(服務器/K8s)自托管(服務器/Docker)
??代碼托管??集成 Codeup(Git)內置 Git 倉庫(CE/EE版)需外接(如 Gitee/GitHub)
??CI/CD 引擎??內置流水線(Flow)內置 GitLab CI/CD(YAML 配置)通過插件實現(Groovy/Declarative Pipeline)
??構建速度??快(阿里云內網資源)中等(依賴自建 Runner 性能)慢(需手動優化構建環境)
??制品管理??集成 ACR(容器鏡像)內置 Package Registry(支持多種格式)需外接(如 Nexus/Harbor)
??K8s 集成??深度集成 ACK(一鍵部署)需配置 Runner 或 Argo CD需安裝 Kubernetes 插件
??權限管理??阿里云 RAM 子賬號體系內置 RBAC(支持 LDAP/AD)依賴插件(如 Matrix Authorization)
??網絡適應性???????(國內無延遲)??(需自建鏡像加速)???(依賴代碼托管平臺網絡)
??合規性支持??等保/國資云預置需自行配置審計日志無原生支持
??擴展性??僅支持阿里云生態高(開源可修改代碼)極高(超 1800 個插件)
??學習成本??低(圖形化界面)中等(需學習 YAML 語法)高(需掌握 Groovy/插件配置)
??成本(10人團隊/年)??¥7k~10k(含云資源)¥8k~15k(服務器+運維)¥6k~12k(服務器+插件成本)

以前我這邊是用過Jenkins的方案,不過感覺這個比較重型,人員投入不少。據說GitLab要輕量一下。

至于阿里云效,感覺也是一個不錯的選擇,這樣用的話會省下運維的成本,此外支持也會比自建更好。但是貌似現在用的人比較少,后面再觀察觀察吧。所以這次還是重點基于GitLab搭建。

GitLab整體架構如下:

??組件????推薦工具????關鍵配置??
??代碼托管??GitLab CE(自托管)利用其 Issues 管理設備固件版本,Wiki 存儲規則鏈文檔
??CI/CD??GitLab CI + K8s Runner分階段構建:
1.?mvn package?→ 2. Docker 鏡像推送 → 3. Argo CD 同步到 K8s
??制品庫??Harbor(自建)掃描 ThingsBoard 鏡像的 CVE 漏洞(Java 依賴需重點監控)
??部署??Kubernetes(阿里云 ACK)使用 Helm Chart 管理 TB 服務:
helm install thingsboard ./thingsboard
??設備模擬??自建 JMeter + MQTT 插件自動化壓力測試(模擬 10W+ 設備連接)

2 搭建

2.1 安裝GitLab

在安裝時候要看看目標機器的配置,我自己的云是阿里云乞丐版那種,內存2G。就運行不起來,直接把系統給拉死掉。沒辦法,服務器現在也沒到貨,只有在自己的WSL先安裝。我的配置是i7+32G。

步驟如下:

# 添加 GitLab 倉庫
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

# 安裝 GitLab CE
sudo EXTERNAL_URL="http://your-ip-or-domain" apt install gitlab-ce -y

# 啟動 GitLab
sudo gitlab-ctl reconfigure

安裝完成后,但是我這邊運行是出現了報錯,仔細一查原來是端口沖突,按照這個方法直接修改即可。安裝gitlab遇到502報錯及安裝完輸入地址顯示網頁無法連接_gitlab-shell self-check failed-CSDN博客

之后就可以正常登錄

創建了一個測試項目

創建項目拉項目也很方便

2.2 安裝GitLab Runner

# 安裝依賴
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

# 安裝 Runner
sudo apt install gitlab-runner -y

3 運行使用

3.1 配置?

首先要對runner進行配置。?

3.2 工程實例

做了一個最簡單java的maven構建工程。

關鍵是根目錄下面配置一個yml文件。

hp@DESKTOP-430500P:~/cicd/test$ cat .gitlab-ci.yml
build-job:stage: buildscript:- mvn clean package  # 確保使用package而不是compileartifacts:paths:- target/*.jar     # 保存可執行JAR

提交上去就會自動構建。

不過現在runner還有點問題。待完善。。。?

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

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

相關文章

Android Studio flutter項目運行、打包時間太長

Android Studio:Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk:3.29.3 系統:windows flutter sdk從2.10.5升級到3.29.3,但是Flutter 3.16開始新增了使用 Gradle聲明式 plugins {} 塊,gradle文…

【OpenGL學習】(六)圖形添加紋理

文章目錄 【OpenGL學習】(六)圖形添加紋理紋理環繞紋理過濾紋理顏色與頂點顏色混合 OpenGL紋理介紹:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL學習】(六)圖形添加紋理 項目…

allure安裝

一、安裝java 需要安裝java環境,不安裝的話在運行前會報錯下列問題(前提是安裝了allure未安裝java) 1.官網地址:https://www.oracle.com/ 2.點擊”Download Java“ 3.選擇JDK正式版本(需要jdk1.8) 4.選擇W…

SpringBoot基于JavaWeb的城鄉居民基本醫療信息管理系統

概述 一個基于SpringBoot框架開發的JavaWeb醫療信息管理系統,采用了現代化的技術架構,功能全面,非常適合作為學習項目或二次開發的基礎。 主要內容 該系統主要包含以下核心功能模塊: ??用戶管理模塊?? 實現管理員、醫生、…

SQL變量聲明與賦值 分支 循環

– 變量 分支 循環 – declare 變量名 數據類型 – declare 關鍵字,作用聲明變量 – 變量名:以開頭 – 數據類型:數據庫中支持的數據類型:int varchar(n) text char(n) nvarchar(n) nchar(n) declare name varchar(255)– 定義多…

AWS S3 可觀測性最佳實踐

AWS S3 介紹 AWS S3(Amazon Simple Storage Service)是一種可擴展的對象存儲服務,提供高可用性、持久性和安全性。它允許用戶存儲和檢索任意數量的數據,并通過簡單的 Web 服務接口訪問這些數據。S3 支持多種存儲類別,…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一個強大的SFU架構的WebRTC流媒體服務器,憑借其多功能性、高性能和可擴展性,mediasoup成為構建多方視頻會議和實時流媒體應用程序的完美選擇。它具有聯播、SVC、傳輸BWE和更多尖端功能。本文介紹了mediasoup-demo在Ubuntu下的布署。…

【JVS更新日志】物聯網、智能排產APS、企業計劃、規則引擎6.25更新說明!

項目介紹 JVS是企業級數字化服務構建的基礎腳手架,主要解決企業信息化項目交付難、實施效率低、開發成本高的問題,采用微服務配置化的方式,提供了低代碼數據分析物聯網的核心能力產品,并構建了協同辦公、企業常用的管理工具等&…

解決git pull,push 每次操作輸入賬號密碼問題

服務器每次git pull 的時候都需要輸入賬號密碼,一勞永逸解決它。 解決方案: 找到項目下 .git /config 文件,然后打開,編輯 [rootiZbp11b24d3d7nc8uvjx9mZ .git]# ls branches config description FETCH_HEAD HEAD hooks i…

Netty:深入解析AbstractByteBufAllocator架構設計

AbstractByteBufAllocator 類結構分析 類結構概覽 public abstract class AbstractByteBufAllocator implements ByteBufAllocator {// 靜態常量static final int DEFAULT_INITIAL_CAPACITY 256;static final int DEFAULT_MAX_CAPACITY Integer.MAX_VALUE;// ...其他常量//…

Java 日志管理與分析

為什么需要日志 ■ 發?了什么(What)。 ■ 何時發?的(When)。 ■ 發?于何處(Where)。 ■ 誰參與其中(Who)。 ■ 參與者來源(第?個Where,注意與上?的Wher…

bmc TrueSight 監控mysql配置

bmc TrueSight 監控mysql配置 1.將pat加入mysql組 useradd pat;echo patpassword|passwd --stdin pat usermod -aG mysql pat2.設置環境變量 查看文件是否存在[rootu1acmsdp01 ~]# find / -name mysql.sock /var/lib/mysql/mysql.sock ^C [rootu1acmsdp01 ~]# cd /var/lib/my…

WinAppDriver 自動化測試:C#篇

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】

zlmediakit webrtc搭建使用

webrtc 編譯與使用 | ZLMediaKit 官方文檔參考 編譯機器: centos 7.6 gcc 版本 10.1.0 (GCC) cmake version 3.23.0web播放rtsp流視頻,使用webrtc毫秒級延遲_webrtc播放rtsp流-CSDN博客 依賴準備 openssl 安裝 (openssl 版本要求 1.1 以上) 我的…

Linux下使用docker nginx部署vue前端項目工程

1、使用Docker和Nginx部署Vue項目的步驟 1、準備好VUE項目,已打包編譯 2、docker環境已完成安裝 3、本地環境上創建nginx目錄,下包括conf,html,logs目錄。用于容器映射(其實是方便修改文件,因為在容器中…

從實驗室到生產線:機器學習模型部署的七大陷阱及PyTorch Serving避坑指南

1 實驗室與生產環境的鴻溝:為什么99%的模型部署會失敗? (1)部署失敗的真實數據統計 根據2023年MLOps行業報告: 78%的組織表示模型部署時間超過預期65%的模型部署后性能下降超過20%僅12%的組織能在一周內完成模型更新…

Module not found: Error: Can‘t resolve ‘core-js/modules/es.array.concat.js‘

遇到錯誤“Module not found: Error: Can’t resolve ‘core-js/modules/es.array.concat.js’”通常是因為你的項目中使用了core-js庫,但是你的項目配置或者core-js的版本不支持你正在嘗試使用的功能。下面是一些解決這個問題的步驟: 確認core-js版本 …

Windows10中設置多個虛擬IP方法

一.netsh 命令添加(最直接、最簡單) 1.在 Windows 10 中,使用 netsh 命令為現有物理網卡或虛擬網卡添加額外的 IP 地址(IP Alias)是最直接的方法。這些 IP 地址與主 IP 在同一網段,共享同一張網卡的 MAC 地…

回答 如何通過inode client的SSLVPN登錄之后,訪問需要通過域名才能打開的服務

需要dns代理 1 配置需求或說明 1.1 適用的產品系列 本案例適用于軟件平臺為Comware V7系列防火墻:本案例適用于如F5080、F5060、F5030、F5000-M等F5000、F5000-X系列的防火墻。 注:本案例是在F100-C-G2的Version 7.1.064, Release 9510P08版本上進行…

Jenkins通過Pipeline流水線方式編譯前端項目

本文記錄了本人在前端項目持續集成與自動化部署方面的實踐經驗,使用 Jenkins 官方 jenkins:lts 鏡像為基礎,構建支持 Node.js 構建和壓縮能力的運行環境,并通過聲明式 Pipeline 實現一套多環境(SIT/PROD)可選的一鍵部署…