系統(tǒng):centos7
nodejs版本:v16.18.1? ?npm版本:8.19.2
由于centos7最大只支持16.18.1版本,盡量讓前端寫代碼時使用這個版本,linux系統(tǒng)如果要裝高版本的node需要安裝glibc庫,很危險,盡量不要操作。
jenkins版本:推薦最新版,yum安裝,不用docker安裝,原因是npm命令在容器內(nèi)無法有效執(zhí)行
jenkins離線部署:
????????https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat
清華大學(xué)的開源鏡像站,可在鏈接前方加wget,下載對應(yīng)版本的rpm包,離線環(huán)境可以下載好后上傳至服務(wù)器,用rpm -ivh rpm文件的命令部署,這里只是提供一個離線安裝的方式。
jenkins聯(lián)網(wǎng)部署:
下載jenkins的yum源文件:
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo?--no-check-certificate
導(dǎo)入key:
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install fontconfig java-11-openjdk -y
jenkins最新版本需要java11支持,如果系統(tǒng)有jdk8建議先卸載。
安裝好jdk后java -version看看版本是否正確
yum install jenkins
jenkins安裝好后建議修改jenkins默認(rèn)端口和用戶:
需要改兩個地方:(最好把jenkins用戶改成root,以免后面出現(xiàn)權(quán)限問題)
vim /etc/sysconfig/jenkins
vim?/usr/lib/systemd/system/jenkins.service
啟動jenkins:/etc/init.d/jenkins start? 或者systemctl start jenkins
瀏覽器輸入ip+端口訪問jenkins,參照提示安裝,查看服務(wù)器key,輸入登錄,注冊一個管理員賬戶,安裝推薦插件,這些不詳細(xì)說明,網(wǎng)上搜一大把
jenkins登錄進(jìn)去后點(diǎn)擊系統(tǒng)管理,看看是否是最新版本,盡量更新到最新版本,因?yàn)橛行┎寮枰甙姹静拍苁褂?,而jenkins插件之間的依賴很強(qiáng),如果一些插件不能用,會導(dǎo)致其他插件無法下載的情況,如果上面有項(xiàng)目,更新插件還會導(dǎo)致項(xiàng)目丟失,或者異常,所以如果是生產(chǎn)的jenkins,一定要備份jenkins部署目錄下的plugins目錄還有jobs目錄。
下載插件時如果提示google代理問題,無法下載,網(wǎng)上搜教程處理,jenkins這點(diǎn)挺麻煩的,用的google源,可以按照網(wǎng)上教程處理,也可以將其他服務(wù)器上的jenkins目錄下的plugins目錄拷貝過來替換,plugins目錄是jenkins的插件目錄,不推薦手動上傳插件,麻煩,當(dāng)然有耐心也可以這么操作。
安裝Publish Over SSH插件
這個是配置ssh使用,因?yàn)榍岸税渴鹪诜?wù)器上,需要遠(yuǎn)程到前端服務(wù)器上部署前端包
Dashboard > 系統(tǒng)管理 > 全局工具配置
出現(xiàn)這個說明插件安裝好了
選擇nodeJS版本,要和jenkins的部署服務(wù)器上的nodejs版本一致才行
nodejs安裝:yum install nodejs? npm -y (在jenkins服務(wù)器上安裝)
配置ssh,這個是前端要發(fā)布的包所在的服務(wù)器
name:隨便填,好記就行
hostname:要遠(yuǎn)程的服務(wù)器
username:希望以什么用戶登錄
Remote Directory:前端包發(fā)布目錄,可以點(diǎn)?號看詳細(xì)介紹
?新建項(xiàng)目:取個名:voms-web,這個根據(jù)自己的需要創(chuàng)建
?進(jìn)入項(xiàng)目配置:
?配置git倉庫,這個是前端存放代碼的地址,需要你的jenkins服務(wù)器能訪問這個地址,
點(diǎn)添加,添加訪問git地址的憑據(jù),然后應(yīng)用保存
?這個是git里面的分支
?構(gòu)建環(huán)境選擇之前在系統(tǒng)配置里面生成的node版本,其他默認(rèn),如果構(gòu)建環(huán)境里面沒有這些功能,網(wǎng)上搜對應(yīng)的插件安裝。
講講思路:前端將代碼提交到git后,在jenkins上執(zhí)行立即構(gòu)建,會將代碼拉到工作空間內(nèi),這個工作空間對應(yīng)的目錄是在jenkins服務(wù)器目錄下的/var/lib/jenkins/workspace/目錄下
這個是目錄結(jié)構(gòu),
node_models目錄:插件依賴目錄,執(zhí)行npm install時生成
dist目錄:構(gòu)建目錄,執(zhí)行 npm run build時生成
接下來就是腳本執(zhí)行了,
?cd到工作空間的項(xiàng)目目錄下,刪除舊的打包文件,刪除node_modules插件依賴。
-g 全局參數(shù)
--registry? 設(shè)置淘寶源,不加這個參數(shù)容易出問題
yarn install? 下載? 這一步會生成node_modeles目錄
vite build? ?打包,這一步后會生成dist目錄
zip? -vr dist.zip? dist? ?這一步是將dist目錄打包成zip文件,方便等會上傳到服務(wù)器上
接下來就是將打好的包上傳到前端服務(wù)器上部署了
這個是前面弄的ssh,直接選擇要ssh的服務(wù)器
?Transfer Set Source files:這個意思是要上傳的文件,就是剛剛打包好的dist.zip
?這個是要執(zhí)行的腳本,還是cd到目錄下,用tar -zcvf命令打包,然后mv到備份目錄backup下,沒有目錄就創(chuàng)建一個目錄,unzip -o dist.zip 解壓,解壓后刪除文件
。
到這里基本就完成了,然后就是測試腳本是否能正常執(zhí)行。
到這里就是成功了,如果中間有什么報錯,根據(jù)報錯問題處理即可,基本都是些node版本不一致的情況,可網(wǎng)上搜索處理。
文章來源:http://www.zghlxwxcb.cn/news/detail-773214.html
原創(chuàng)文章,轉(zhuǎn)載請注明出處。文章來源地址http://www.zghlxwxcb.cn/news/detail-773214.html
到了這里,關(guān)于centos7:jenkins+nodejs前端自動化部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!