“從零到一:使用GitLab和Jenkins實現自動化CI/CD流水線”

GitLab倉庫

簡單的來說就是開發人員提交代碼的倉庫,用于團隊開發,GitLab 上托管的倉庫通常作為遠程倉庫使用,開發人員可以將本地的 Git 倉庫推送到
GitLab 上,也可以從 GitLab 克隆倉庫到本地進行開發。

Jenkins

Jenkins 是一個開源的自動化服務器,廣泛用于持續集成(Continuous Integration,
CI)和持續交付(Continuous Delivery,
CD)流程中。它幫助開發者自動化軟件開發周期中的不同階段,如構建、測試和部署應用程序。通過
Jenkins,團隊可以更快地發現并解決代碼中的問題,提高軟件的質量和效率。

部署環境介紹:
Centos 8.2
gitlab-ce-18.1.5-ce.0.el8.x86_64
jenkins-2.512

一、部署GitLab

下載地址:https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/8/gitlab-ce-18.1.5-ce.0.el8.x86_64.rpm

#安裝git
yum -y install git#安裝gitlab
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/8/gitlab-ce-18.1.5-ce.0.el8.x86_64.rpm/download.rpm
yum -y install download.rpm ##修改配置文件 external_url
vim /etc/gitlab/gitlab.rb
external_url 'http://172.16.33.100'#加載配置文件
gitlab-ctl reconfigure
最后看到gitlab Reconfigured!代表配置成功#啟動GitLab
gitlab-ctl start
ok: run: alertmanager: (pid 6878) 124s
ok: run: gitaly: (pid 6831) 128s
ok: run: gitlab-exporter: (pid 6847) 127s
ok: run: gitlab-kas: (pid 6247) 301s
ok: run: gitlab-workhorse: (pid 6800) 129s
ok: run: logrotate: (pid 5954) 336s
ok: run: nginx: (pid 6819) 128s
ok: run: node-exporter: (pid 6840) 128s
ok: run: postgres-exporter: (pid 6890) 123s
ok: run: postgresql: (pid 6082) 307s
ok: run: prometheus: (pid 6859) 126s
ok: run: puma: (pid 6313) 209s
ok: run: redis: (pid 5989) 330s
ok: run: redis-exporter: (pid 6850) 126s
ok: run: sidekiq: (pid 6330) 203s#查看狀態
gitlab-ctl status#默認賬戶 root 密碼去配置文件找
cat /etc/gitlab/initial_root_password |grep Password
#          2. Password hasn't been changed manually, either via UI or via command line.
Password: BsYT7SMWB8l7u9saBsvFsWmS4cnL9bH8fXcmW0R8Q7A=

可以登錄圖形化界面修改為中文并修改密碼
http://172.16.33.100/
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
新建項目
在這里插入圖片描述

二、部署Jenkins

1、安裝JDK17

wget https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz
mkdir /usr/java
tar -xf jdk-17.0.12_linux-x64_bin.tar.gz 
mv jdk-17.0.12 /usr/java#配置環境變量
vim /etc/profile 
export JAVA_HOME=/usr/java/jdk-17.0.12
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile
java --version
java 17.0.12 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

2、安裝jenkins

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.512-1.1.noarch.rpm
yum install -y jenkins-2.512-1.1.noarch.rpm -y#安裝字體包,否則會報錯Fontconfig head is null
yum install -y fontconfig dejavu-sans-fonts
fc-cache -f -v#在啟動配置文件配置jdk地址,由于部署gitlab和jenkins是同一臺服務器,已使用了8080端口,jenkins更改為8081
vim /usr/lib/systemd/system/jenkins.service 
Environment="JAVA_HOME=/usr/java/jdk-17.0.12"
Environment="PATH$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
Environment="JENKINS_PORT=8081"#啟動
systemctl start jenkins
#開機自啟
systemctl enable jenkins#cat /var/lib/jenkins/secrets/initialAdminPassword
92422d179ede45f1a47398fedf99b444

瀏覽器訪問http://172.16.33.100:8081/
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
至此,Jenkins安裝完成!

三、使用Jenkins構建項目

在 Jenkins 上生成 非對稱密鑰,Jenkins 存儲私鑰,GitLab 存儲公鑰。 公鑰解密,私鑰加密 的方式實現 權限校驗 功能。
當 GitLab 能成功解密就證明我們有權限訪問數據, 然后就能成功拉取代碼。 這里以 GitLab 作為列舉說明,實際上
GitHub、Gitee、Gitea 等實現 CICD 過程差不多,這里就不過多贅述。

為了模擬真實的前后端項目構建,所以這里采用將 若依框架 進行學習,將代碼拷貝到對應的倉庫中

我們這里模擬企業開發的代碼不開源狀態,所以這里創建的是私密倉庫,然后配置 憑證 拉取代碼

服務器說明
gitlab+jenkins:172.16.33.100
運行project:172.16.33.101

1、創建項目倉庫

#克隆項目
git clone https://gitee.com/y_project/RuoYi-Vue.git#移除現有的遠程 URL
cd RuoYi-Vue/
git remote remove origin#添加 GitLab 遠程倉庫 URL
git remote set-url origin http://root:nantianyw888@172.16.33.100/root/myproject#推送到 GitLab
git push -u origin master

在這里插入圖片描述

2、安裝Maven

這個是用于構建項目使用的,如果項目采用的的是 gradle,則需要安裝 gradle

#下載 maven 壓縮包并解壓
wget -P /usr/local https://dlcdn.apache.org/maven/maven-3/3.8.9/binaries/apache-maven-3.8.9-bin.tar.gz --no-check-certificate
cd /usr/local/
tar -xf apache-maven-3.8.9-bin.tar.gz #配置阿里鏡像,注釋掉原先的倉庫,使用阿里倉庫
vim /usr/local/apache-maven-3.8.9/conf/settings.xml<!--<mirror><id>maven-default-http-blocker</id><mirrorOf>external:http:*</mirrorOf><name>Pseudo repository to mirror external repositories initially using HTTP.</name><url>http://0.0.0.0/</url><blocked>true</blocked></mirror></mirrors>--><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>#查看 maven 版本
/usr/local/apache-maven-3.8.9/bin/mvn -v
Apache Maven 3.8.9 (e26b057cc3a17459358ef53e4d0e2e381bf08a1c)
Maven home: /usr/local/apache-maven-3.8.9
Java version: 17.0.12, vendor: Oracle Corporation, runtime: /usr/java/jdk-17.0.12
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-193.el8.x86_64", arch: "amd64", family: "unix"

3、配置Git

git  --version
git version 2.27.0#查看git位置
which git
/usr/bin/git#創建密鑰
# 設置名稱
git config --global user.name "Kamming"
# 設置郵箱
git config --global user.emial "Kamming@qq.com"
# 生成密鑰
ssh-keygen -t rsa -b 4096 -C "Kamming@qq.com"#查看公鑰,將公鑰 id_rsa.pub 里面的內容拷貝到 GitLab 的 sshKey 里面
cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCjI6pPnkq/05yipiasATfyjpkL7UsVS+WEyXyDPSkl2GwUD33pjhRPMsOOR5+Tfn75g9xl9ViY+xc8RQIWmZV2cHD6GHSP0OGhcKuQLG9s6hJ5aZwkWIqPMuaBgdmlfvesiTlKwTDX7+yEch1l3mkP8s0Jz4iK2ETOgwf/A/o4ou6znosuYGaUdBsYiEY9POPzUVDu25EDUUHSnhgMQfrEyqMW2L8RhhpIUAc6AonKh0ZnOVyG1gbXbyBlNLY/Hg1muDLPNuJBvWdIouxwxGFpUtdanbj4PFGWZR8YS2K2voZMLuDhumeR/yXn5O4wNZVDcHY03hVToNXgydOJ8+DUNr/HzQM5fXAd4LeU/PS8WAchu16yWdaLIqRKZyvjVRaiwZ/jHJX6upcIh5a7N+J5R0vp9lj1KTcuSsKtbkyOLWm7ixToDzky2ImtOvK5pyFwxHYmqSneATTUFra/pA7ltU/qiUYHcJXjwXJDAaO3pChGN/Ea4VN/XSnPLecFqsn9is8TMJLBZDqj8WRaSljCTvFRjcRwQSI5tj3F5czUEz3lxD0ryGuGsP0lWJeGwW4VT94Gvdp1FsW+6uohVWkitcrZ3XbCNY0DprKt0pg7Q+Z+Tc3pKBE9nG8ZriqOaYCXqy4pCh9lz2DLEXOvn/YH7Sq1Cku9H16dHcAwNslAlw== Kamming@qq.com

在這里插入圖片描述
在這里插入圖片描述

4、配置Jenkins憑證

5、安裝相應插件并配置

6、構建項目[非容器方式]

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

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

相關文章

3D開發工具HOOPS助力造船業數字化轉型,打造更高效、更智能的船舶設計與協作!

造船業是一個高度復雜且競爭激烈的行業&#xff0c;涵蓋船體設計、結構分析、生產制造到運維管理的完整生命周期。面對龐大的CAD數據、多方協作的復雜流程以及數字化轉型的迫切需求&#xff0c;傳統工具往往顯得力不從心。 Tech Soft 3D的HOOPS SDK系列&#xff0c;正以其卓越…

Python調用MCP:無需重構,快速為現有應用注入AI與外部服務能力!

文章目錄 ?? 介紹 ?? ?? 演示環境 ?? ? MCP核心概念:AI世界的“USB-C” ? ??? MCP安裝與基礎使用 ??? ?? 安裝模塊 ?? 創建第一個MCP服務端 ?? Python中MCP客戶端的調用方案 ?? ?? 概述 ?? 深度解析 ?? 參數詳情 ?? 常用方法 ?? 不同傳輸協…

【鏈表】3.重排鏈表(medium)

重排鏈表&#xff08;medium&#xff09;題?描述&#xff1a;解法&#xff1a;算法思路&#xff1a;算法代碼&#xff1a;題?鏈接&#xff1a;143. 重排鏈表 題?描述&#xff1a; 給定?個單鏈表 L 的頭節點 head &#xff0c;單鏈表 L 表?為&#xff1a; L(0) → L(1) →…

蜜罐平臺-Hfish部署

Hfish簡介&#xff1a; HFish是一款社區型免費蜜罐&#xff0c;側重企業安全場景&#xff0c;從內網失陷檢測、外網威脅感知、威脅情報生產三個場景出發&#xff0c;為用戶提供可獨立操作且實用的功能&#xff0c;通過安全、敏捷、可靠的中低交互蜜罐增加用戶在失陷感知和威脅…

docker-容器

安裝docker yum install -y docker查看版本 docker version安裝docker-compose yum install -y docker-compose查看版本 docker-compose --version基礎鏡像構建 tar --exclude/var/lib -cvf euler.tar /etc /boot /var /tmp /usr /mnt /bin /sbin /lib /lib64將JDK等需要的中間…

ESP32開發:ubuntu22.04 下esp-idf開發環境搭建

ubuntu22.04 下 esp-idf 開發環境搭建1.安裝編譯 ESP-IDF 需要以下軟件包2.獲取 ESP-IDF3.設置工具下載工具備選方案4.設置環境變量5.編譯工程并燒錄配置工程編譯工程燒錄固件到設備6.其他指令監視輸出擦除 flash清除編譯1.安裝編譯 ESP-IDF 需要以下軟件包 編譯 ESP-IDF 需要…

匯編基礎2

1.函數調用fun0mov r4, #100bx lrget_MaxNumcmp r0, r1stmfd sp!, {r0-r12, lr} //入棧bl fun0 //調用fun0函數ldmfd sp!, {r0-r12, lr} //出棧movge r3, r0movlt r3, r1bx lr mainldr sp, 0x40001000mov r0, #100mov r1, #200mov r2, #100stmfd sp!,…

20250909的學習筆記

HTML 基礎筆記1. HTML 基本格式<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>中文測試</title> </head> <body>這里是測試body測試內容。 </body> </html>2. HTML 標簽常用標簽 - <h1…

Linux 安全加固;Windows 安全設置

一、Linux 安全加固1. 賬戶與權限管理最小權限原則禁用 root 遠程登錄&#xff1a;修改 /etc/ssh/sshd_config&#xff0c;設置 PermitRootLogin no。使用 sudo 替代直接 root 操作&#xff0c;并通過 /etc/sudoers 限制命令范圍&#xff08;如僅允許 apt 和 systemctl&#xf…

條碼打印檢測一體機是什么?

在工業4.0和智能制造的大背景下&#xff0c;數據的準確性和實時性是構建高效追溯系統。條碼/二維碼作為物理世界與數字世界連接的橋梁&#xff0c;其打印質量直接決定了數據鏈路的可靠性。傳統“打印-人工抽檢/離線全檢”的模式存在流程割裂、效率低下、無法100%覆蓋的弊端&…

Javaweb - 14.6 - Vue3 數據交互 Axios

目錄 Promise 普通函數和回調函數 Promise 簡介 Promise 基本用法 async 和 await 的使用 Axios 介紹 Axios 入門案例 Axios 的 get 和 post 方法 Axios 攔截器 完&#xff01; Promise 普通函數和回調函數 普通函數&#xff1a;正常調用的函數&#xff0c;一般函數…

怎么選適合企業的RPA財務機器人?

對于大多數財務人來說&#xff0c;“月初月末就是噩夢”已經成了常態&#xff1a;一邊要面對堆積如山的單據和報表&#xff0c;一邊還要應付領導不斷加碼的工作&#xff0c;常常忙到深夜&#xff0c;卻總覺得自己陷在重復事務中難有成長。其實&#xff0c;這并不是個體問題&…

html css js網頁制作成品——HTML+CSS無窮網頁設計(5頁)附源碼

目錄 一、?????網站題目 二、??網站描述 三、??網站介紹 四、??網站效果 五、?? 代碼實現 ??HTML

AUTOSAR進階圖解==>AUTOSAR_SWS_PDURouter

AUTOSAR PDU Router詳解文檔 AUTOSAR通信架構中的核心路由模塊目錄 1. 概述2. PDU Router模塊架構3. PDU Router配置模型4. PDU Router路由流程5. PDU Router狀態機6. 總結 1. 概述 PDU Router模塊是AUTOSAR通信架構中的核心組件&#xff0c;負責在AUTOSAR軟件組件之間路由I-…

RHEL7.9、RHEL9.3——源碼安裝MySQL

目錄 一、環境部署 1. 克隆rhel7.9虛擬機 二、源碼安裝MySQL 1. 準備工作 2. 源碼部署mysql8.0.40 1&#xff09;安裝編譯mysql所需軟件包 2&#xff09;編譯安裝mysql8.0.40 3&#xff09;生成啟動腳本 一、環境部署 1. 克隆rhel7.9虛擬機 改名為 “RHEL79_mysql_master” 并…

解決Win11 安全中心刪掉存在隱患的工具

打開設置&#xff0c; 找到Windows安全中心&#xff0c;找到病毒和威脅防護&#xff0c;選擇排除項&#xff0c;點 添加或刪除排除項添加文件&#xff0c;文件夾&#xff0c;工具按照自己需求選擇。或&#xff0c;刪除文件注意&#xff1a;隱患的工具或者文件安裝或者用完&…

通過URI Scheme實現從Web網頁上打開本地C++應用程序(以騰訊會議為例,附完整實現源碼)

目錄 1、需求描述 2、選擇URI Scheme實現 3、何為URI Scheme&#xff1f; 4、將自定義的URL Scheme信息寫入注冊表的C源碼實現 5、如何實現最開始的3種需求 6、后續需要考慮的細節問題 之前陸續收到一些從Web頁面上啟動我們C客戶端軟件的需求&#xff0c;希望我們能提供一…

機器學習02——模型評估與選擇(過擬合與欠擬合、K折交叉驗證、均方誤差、混淆矩陣)

上一章&#xff1a;機器學習01——機器學習概述 下一章&#xff1a;機器學習03——線性模型 機器學習實戰項目&#xff1a;【從 0 到 1 落地】機器學習實操項目目錄&#xff1a;覆蓋入門到進階&#xff0c;大學生就業 / 競賽必備 文章目錄一、經驗誤差與過擬合&#xff08;一&a…

基于 Django 與 Bootstrap 構建的現代化設備管理平臺

整體步驟概覽 創建項目和應用設計模型&#xff08;Model&#xff09; - 定義設備的數據結構配置用戶認證&#xff08;Auth&#xff09; - 使用 Django 自帶的強大用戶系統創建視圖&#xff08;View&#xff09; - 處理業務邏輯&#xff1a;登錄、列表、增刪改查編寫模板&#x…

微軟依舊穩定發揮,Windows 最新更新性能「開倒車」

微軟在前不久為Release Preview測試用戶推送了最新Windows11 25H2版本。按照慣例&#xff0c;正式版將于9月或者10月與咱們見面。雖然看起來是個跨版本的大更新&#xff0c;但是更新方式將服務堆棧更新&#xff08;SSU&#xff09;與最新累積更新&#xff08;LCU&#xff09;。…