柚子快報激活碼778899分享:Jenkins 使用入門教程
柚子快報激活碼778899分享:Jenkins 使用入門教程
Jenkins 使用入門教程
一、Jenkins 環(huán)境準(zhǔn)備
1.jdk
2.git
3.maven
二、JenKins 安裝
Linux 安裝 Jenkins 教程
2.1 使用 war 安裝
jenkins官網(wǎng)下載 war 包,上傳到服務(wù)器
2.2 創(chuàng)建工作目錄,設(shè)置環(huán)境變量
創(chuàng)建 /usr/local/jenkins 工作目錄
mkdir /usr/local/jenkins
在 /etc/profile 文件中,新增 jenkins的環(huán)境變量
export JENKINS_HOME=/usr/local/jenkins
Tip
執(zhí)行 source /etc/profile 立刻生效
2.3 啟動 jenkins
將 jenkins.war 移動到 /usr/local/jenkins 路徑下
mv jenkins.war /usr/local/jenkins
配置運行參數(shù)執(zhí)行
java -jar /usr/local/jenkins/jenkins.war --httpPort=10001 -Djenkins.home=/usr/local/jenkins
完整 demo
java -jar jenkins.war --httpPort=10001 -Djenkins.install.runSetupWizard=false -Djenkins.model.Jenkins.slaveAgentPort=50000 -Djenkins.home=/path/to/your/jenkins_home -Xrs /path/to/your/config.xml
Tip
--httpPort=8080 指定 Jenkins 使用的 HTTP 端口。-Djenkins.install.runSetupWizard=false 禁止在啟動時運行設(shè)置向?qū)А?Djenkins.model.Jenkins.slaveAgentPort=50000 指定 Jenkins Agent 使用的端口(你可以根據(jù)需要更改這個端口號)。-Djenkins.home=/path/to/your/jenkins_home 指定 Jenkins 的工作目錄(即 Jenkins 主目錄)。-Xrs /path/to/your/config.xml 指定 Jenkins 的配置文件路徑。
請確保將 /path/to/your/jenkins_home 替換為你的 Jenkins 工作目錄的實際路徑,將 /path/to/your/config.xml 替換為你的配置文件的實際路徑。
如果你想要禁用 AJP13 協(xié)議,你可以完全忽略 --ajp13Port 參數(shù),因為 Jenkins 默認(rèn)不會啟用它。
最后,如果你在運行 Jenkins 時遇到任何錯誤,請檢查 Jenkins 的日志文件,通常位于 Jenkins 工作目錄下的 logs 文件夾中,以獲取更詳細(xì)的錯誤信息。
成功啟動
2024-03-18 02:50:43.688+0000 [id=34] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
321942d4982d4d4ea9981d9c5b7fdfc5
This may also be found at: /usr/local/jenkins/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
Tip
阿里云安全組開放端口 10001,防火墻也需要開放端口 10001
三、JenKins 初始化
3.1 選擇推薦方式安裝插件
3.2 創(chuàng)建管理員
用戶名:jenkins
密碼:jenkins213465
全名:fox_jenkins
郵箱:xxxx@qq.com
3.3 全局工具配置
登錄 jenkins
進入 Manage Jenkins > Tools 路徑下,配置 jdk、git、maven 在服務(wù)器上的安裝路徑
jdk 配置,如果安裝了不同版本的jdk,可以添加多個jdk,路徑填寫jdk安裝路徑 /usr/local/jdk1.8.0_202
同理配置 git 的安裝路徑 /usr/local/git/bin/git
配置 maven 的安裝路徑 /usr/local/maven
記得配置 maven 的 setting 文件路徑 /usr/local/maven/conf/setting.xml
node 配置 (可選)
需要安裝 Node.js 插件
3.4 ssh 密鑰生成配置
我們gitlab、gitee、github 上拉取代碼是需要憑證的,比如用戶名密碼或SSH秘鑰驗證。這邊采用的秘鑰驗證方式,所以需要配置秘鑰的憑證才能去gitlab、gitee、github上拉取對應(yīng)代碼
可參考 Linux 配置 SSH 密鑰教程
生成ssh 密鑰對
.ssh 密鑰對 目錄一般位于 /root/.ssh 路徑下,使用 ssh-keygen -t rsa -C "fox@qq.com" 生成密鑰對
ssh-keygen -t rsa -C "fox@qq.com"
# -f 指定生成文件名稱
ssh-keygen -t rsa -f xxx_rsa -C "xxx"
ssh-keygen -t rsa -f git_rsa -C "fox@qq.com"
查看 ssh 公鑰
[root@linux-1 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yAABAQC7gbTbLz6n+K4A2V8E3Bdzku8ePytzTtb0McF20lkaqVSioBOR0CB8OgGiokLSJE2qCkRk3zTpIfvByJorJGYYIl8e8XbBFWCcfXZURVzqC2cH1ld4OG8DZMNkNbY6dlpHz1m4TUvqetxT87rgQh1ggHQSYB8DCxpjfIWscxXlVkBsZswDHB4cfOOPuIGF8O+APu1rgterYB1+a2jsGGMyJQKkkVL5N/wvF3B fox@qq.com
Tip
ssh-keygen: 這是一個用于創(chuàng)建、管理和轉(zhuǎn)換身份驗證密鑰的工具,經(jīng)常用于 SSH 連接。-t rsa: 這指定了要生成的密鑰類型。在這里,你選擇了 RSA 密鑰。RSA 是一種常用的公鑰加密算法,它生成一對密鑰:一個公鑰和一個私鑰。公鑰用于加密數(shù)據(jù),私鑰用于解密。-C "fox@qq.com": 這個選項允許你為密鑰對添加一個注釋(通常是一個電子郵件地址)。這在你擁有多個密鑰對時特別有用,因為你可以通過這個注釋來區(qū)分它們。在這里,你為密鑰對添加了注釋 “fox@qq.com”。-f "xxx_rsa": 指定生成的文件名稱
3.5 配置全局憑據(jù) (SSH)
3.5.1 配置全局SSH
進入 Dashboard > 憑據(jù)管理 > 添加憑據(jù)
選擇類型 SSH Username with private key > 范圍選擇 全局 (Jenkins,nodes,items,all child items,etc) >
Username 填寫創(chuàng)建 SSH密鑰的 Linux 用戶 (這里填 root),Private Key 填寫 SSH 私鑰
進入 Manage Jenkins > 憑據(jù)管理 > 添加憑據(jù) > SSH
選擇 SSH 類型,填寫SSH的私鑰即可完成
3.6 系統(tǒng)配置 (遠程服務(wù)器)
配置遠程服務(wù)器,項目打包之后,可以推送到指定的遠程服務(wù)器上
進入 系統(tǒng)管理 > 系統(tǒng)配置 選擇新增 SSH Servers
填寫新增的服務(wù)器實例名稱、IP、登錄用戶、密碼、遠程的根目錄
Tip
這里使用遠程服務(wù)器的用戶和密碼的方式,登錄連接到遠程服務(wù)器。指定遠程服務(wù)器的基礎(chǔ)目錄,這里為 /即遠程用戶的主目錄,如果有指定目錄比如 /test , 那么在配置任務(wù),指定當(dāng)前遠程服務(wù)器時,會自動在填寫的路徑上,加上 /test 前綴路徑。
四、測試部署
4.1 構(gòu)建 maven 項目
4.1.1 簡單構(gòu)建
新增任務(wù) > 選擇 構(gòu)建maven項目 > 輸入任務(wù)名稱 > 完成創(chuàng)建
進入 新建的maven 任務(wù)的 configuration 頁面
選擇項目使用的JDK版本(全局工具配置jdk),填寫倉庫git地址,使用的SSH的私鑰(全局憑證配置SSH私鑰),選擇拉取的git分支
Tip
這里需要部署 jenkins 的服務(wù)器,信任名單 ssh -T git@gitee.com,不讓,無法拉取git項目源碼
執(zhí)行項目編譯打包的命令 clean package -U -Dmaven.test.skip=true
配置完成,構(gòu)建任務(wù)
4.1.2 復(fù)雜構(gòu)建 (推送jar 到指定遠程服務(wù)器下)
同簡單構(gòu)建一致、配置git地址和構(gòu)建命令 在 Post Steps 步驟下,選擇 Run regardless of build result 下的 Send files or execute commands over SSH
Tip
項目完成編譯打包之后,可以推送到指定的遠程服務(wù)器上,然后并執(zhí)行遠程服務(wù)器腳本,重啟服務(wù)
指定遠程服務(wù)器,勾選 Verbose output in console (將遠程服務(wù)器上腳本執(zhí)行等輸出,打印到j(luò)enkins,方便查看),選擇推送的源文件、上傳的遠程服務(wù)器目錄、以及上傳完成之后,需要執(zhí)行遠程服務(wù)器的命令或者腳本。
Tip
指定遠程服務(wù)器,指定上傳的源文件為當(dāng)前任務(wù)編譯打包之后的jar文件,移除到 target 前綴,并上傳到遠程服務(wù)器的指定目錄下,(如果在配置遠程服務(wù)器時,有配置基礎(chǔ)目錄,這里會自動加上前綴),最后再執(zhí)行遠程服務(wù)器的命令或者腳本。
Tip
修改maven的setting配置文件的鏡像,改為阿里云鏡像或者其他國內(nèi)鏡像,提高下載依賴的速度
4.2 構(gòu)建 node 項目
需要安裝node.js 插件,并在全局工具配置中進行配置
4.2.1 簡單構(gòu)建
新增任務(wù) > 選擇 構(gòu)建自由風(fēng)格的軟件項目 > 輸入任務(wù)名稱 > 完成創(chuàng)建
源碼管理中,添加項目git地址和SSH密碼
構(gòu)建環(huán)境中,勾選 Provide Node … 配置 Node
構(gòu)建前執(zhí)行腳本,安裝依賴并打包
echo ">>>>>>>>>>> 開始構(gòu)建 >>>>>>>>>>>"
npm install
npm run build
zip -r dist.zip dist # 壓縮
echo ">>>>>>>>>>> 構(gòu)建完成 >>>>>>>>>>>"
4.2.2 復(fù)雜構(gòu)建 (推送到指定遠程服務(wù)器下)
同簡單構(gòu)建一致、配置git地址和構(gòu)建命令 在 Post Steps 步驟下,選擇 Run regardless of build result 下的 Send files or execute commands over SSH 指定遠程服務(wù)器,勾選 Verbose output in console (將遠程服務(wù)器上腳本執(zhí)行等輸出,打印到j(luò)enkins,方便查看),選擇推送的源文件、上傳的遠程服務(wù)器目錄、以及上傳完成之后,需要執(zhí)行遠程服務(wù)器的命令或者腳本。
五、安裝插件
maven integration plugin
安裝構(gòu)建maven項目的插件
Publish Over SSH
推送部署包到其他服務(wù)器
Role-based Authorization Strategy
角色權(quán)限分配
node js
安裝node js 插件
Android Emulator
安卓SDK 插件
PreSCM Steps
六、用戶權(quán)限角色管理
安裝 Role-based Authorization Strategy 插件,需要重啟 Jenkins
6.1 安裝權(quán)限授權(quán)插件
進入 系統(tǒng)管理 > 全局安全配置 目錄下 ,授權(quán)策略 選擇 Role-Based Startegy,保存之后,系統(tǒng)管理下會出現(xiàn)Manage and Assign Roles 新的目錄
進入 系統(tǒng)管理 > Manage and Assign Roles 目錄下
6.2 創(chuàng)建管理員
進入 系統(tǒng)管理 > 管理用戶 創(chuàng)建新的管理員 tbbserver
6.3 配置權(quán)限
普通用戶未配置角色,是沒有任何查看權(quán)限的
進入 Manage and Assign Roles > Manage Roles 目錄,在 Global roles 下創(chuàng)建 只讀角色 base_read_role 勾選 全部 的 read 權(quán)限
進入 Manage and Assign Roles > Assing Roles 目錄,在 Global roles 下添加新的管理員用戶 tbbserver 分配 base_read_role 角色
配置可讀角色之后,當(dāng)前 tbbserver 用戶,可以有部分目錄查看權(quán)限。
創(chuàng)建 Item roles 角色,給模糊匹配的任務(wù),配置權(quán)限
常用模糊匹配規(guī)則:
cpp-.* #將匹配名稱以cpp-開頭的所有job
^git_.*feature_.* #以git_開頭,中間任意字符,feature_后面跟任意字符
"^upgrade_(aa|bb)_.*" #(aa|bb)可以匹配aa或者bb
(dev.*|test.*) #匹配dev.*或者test.*
(?!)cpp-.* #不區(qū)分大小寫
^foo/bar.* #匹配文件夾
給 tbbserver 用戶分配 item role 角色
用戶 tbbserver 可以查看到模糊匹配的任務(wù)列表
七、異常
啟動 jenkins.war 報錯 Fontconfig head is null 表示字體配置的頭信息為空
java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1269)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/sun.font.SunFontManager.
at java.desktop/sun.awt.FcFontManager.
at java.desktop/sun.awt.X11FontManager.
解決方法
執(zhí)行 yum install fontconfig 下載字體配置工具
# 執(zhí)行命令
yum install fontconfig
# 生成配置文件
/etc/fonts/fonts.conf
2.node js的證書過期異常
+ npm install
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/vue-loader failed, reason: certificate has expired
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2024-04-22T01_12_49_446Z-debug.log
Build step 'Execute shell' marked build as failure
解決辦法
清除npm緩存
npm cache clean --force
禁用SSL
npm config set strict-ssl false
修改鏡像源
npm config set registry https://registry.npm.taobao.org/
npm config get registry
柚子快報激活碼778899分享:Jenkins 使用入門教程
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。