一、Jenkins簡(jiǎn)介
Jenkins是一個(gè)開(kāi)源軟件項(xiàng)目,是基于Java開(kāi)發(fā)的一種持續(xù)集成(CI)工具,用于解決持續(xù)重復(fù)的部署、監(jiān)控工作;它一個(gè)開(kāi)放易用的軟件平臺(tái),大大簡(jiǎn)化軟件的持續(xù)集成。
目前持續(xù)集成(CI)已成為許多軟件開(kāi)發(fā)團(tuán)隊(duì)的常見(jiàn)做法。它是一種實(shí)踐,旨在緩和和穩(wěn)固軟件的構(gòu)建過(guò)程,并且能夠幫助您的團(tuán)隊(duì)?wèi)?yīng)對(duì)如下挑戰(zhàn):
a. 軟件構(gòu)建自動(dòng)化 :配置完成后,CI系統(tǒng)會(huì)依照預(yù)先制定的時(shí)間表,或者針對(duì)某一特定事件,對(duì)目標(biāo)軟件進(jìn)行構(gòu)建。
b.構(gòu)建可持續(xù)的自動(dòng)化檢查 :CI系統(tǒng)能持續(xù)地獲取新增或修改后簽入的源代碼,也就是說(shuō),當(dāng)軟件開(kāi)發(fā)團(tuán)隊(duì)需要周期性的檢查新增或修改后的代碼時(shí),CI系統(tǒng)會(huì)不斷確認(rèn)這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開(kāi)發(fā)者們?cè)跈z查彼此相互依存的代碼中變化情況需要花費(fèi)的時(shí)間和精力(說(shuō)直接一點(diǎn)也是錢啊,呵呵)。
c. 構(gòu)建可持續(xù)的自動(dòng)化測(cè)試 :構(gòu)建檢查的擴(kuò)展部分,構(gòu)建后執(zhí)行預(yù)先制定的一套測(cè)試規(guī)則,完成后觸發(fā)通知(Email,RSS等等)給相關(guān)的當(dāng)事人。
d. 生成后后續(xù)過(guò)程的自動(dòng)化 :當(dāng)自動(dòng)化檢查和測(cè)試成功完成,軟件構(gòu)建的周期中可能也需要一些額外的任務(wù),諸如生成文檔、打包軟件、部署構(gòu)件到一個(gè)運(yùn)行環(huán)境或者軟件倉(cāng)庫(kù)。這樣,構(gòu)件才能更迅速地提供給用戶使用。
部署一個(gè)CI系統(tǒng)需要的最低要求是,一個(gè)可獲取的源代碼的倉(cāng)庫(kù),一個(gè)包含構(gòu)建腳本的項(xiàng)目。
其主要用于:
1、持續(xù)的軟件版本發(fā)布/測(cè)試項(xiàng)目。
2、監(jiān)控外部調(diào)用執(zhí)行的工作。
二、安裝Jenkins
1、在服務(wù)器直接下載jenkins的war包
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
但是從海外的服務(wù)器下載非常慢,還經(jīng)常失??;所以一般先在windows下載好war包(雖然也很慢,但是錯(cuò)了可以繼續(xù)下載,而且并發(fā)操作不影響其他步驟,而且一次下載多次使用…),再傳到服務(wù)器
#Tips-提高下載速度小技巧1:
電腦連手機(jī)熱點(diǎn),手機(jī)再打開(kāi)vpn,服務(wù)節(jié)點(diǎn)最好選擇美國(guó);當(dāng)然如果電腦有vpn就更方便了。
#Tips-提高下載速度小技巧2:
從阿里云開(kāi)發(fā)者社區(qū)下載:
https://developer.aliyun.com/mirror/
2、在本地下載jenkins的war包
1)Jenkins官網(wǎng)地址
2)jenkins版本與jdk版本有對(duì)應(yīng),所以下載的第一步是看系統(tǒng)的jdk版本是多少?再找對(duì)應(yīng)的jenkins。
下載頁(yè)是最新的jenkins-2.361.1,要求jdk版本11或者17,我們系統(tǒng)是jdk8,所以一開(kāi)始我就安裝不上
jenkins過(guò)往版本的下載入口如下圖
而且這里很貼心的寫了jenkins對(duì)應(yīng)的jdk版本
3、在linux部署jenkins
法一:jenkins本質(zhì)上就是一個(gè)war包,和在linux部署普通項(xiàng)目類似;一般是找一個(gè)tomcat,把war包放在webapp中,啟動(dòng)tomcat即可。
法二:jenkins因?yàn)閣ar包中也包含了tomcat,所以也可以像jar包一樣部署,下面介紹一下這種部署方式。
1)上傳jenkins.war,我這里是在usr下
在jenkins所在目錄新建一個(gè)日志文件
vim nohup.out
保存退出
:wq
2)安裝并啟動(dòng)Jenkins;因?yàn)閖enkins默認(rèn)端口是8080、一般都被占用了,這里用特定端口啟動(dòng)
#后臺(tái)啟動(dòng)命令
nohup java -jar jenkins.war --httpPort=8095 >/usr/lib/jenkins/nohup.out &
#ctrl+c退出后,可以查詢啟動(dòng)日志
tail -fn 200 nohup.out
3)在瀏覽器輸入http://ip:8095,看到如下界面表示jenkins安裝成功。
4、登錄jenkins客戶端,做基礎(chǔ)配置
1)第一次登錄需要使用初始密碼。
密碼在啟動(dòng)日志中就會(huì)打印出來(lái),所以建議在啟動(dòng)時(shí),打開(kāi)實(shí)時(shí)日志(或者啟動(dòng)完打開(kāi)日志文件夾中的catalina.out查看),就可以比較簡(jiǎn)單的找到初始密碼。
當(dāng)然,也可以在Jenkins指定的initialAdminPassword文件中查看
vim /root/.jenkins/secrets/initialAdminPassword
2)復(fù)制密碼,返回瀏覽器將密碼填入,然會(huì)點(diǎn)擊“繼續(xù)”,進(jìn)入一下也頁(yè)面,
我一般是“選擇插件安裝”,只選很少幾個(gè),后面有需要的再安裝,這樣可以節(jié)省時(shí)間。
當(dāng)然選擇“安裝推薦的插件”,也可以。
下一步
這里插件即使沒(méi)有安裝成功也沒(méi)有關(guān)系,后面可以補(bǔ)。可以在jenkins的客戶端插件管理中自動(dòng)下載,也可以從網(wǎng)上下載好插件安裝上去,這里提供一下jenkins插件下載地址:
https://plugins.jenkins.io/
3)安裝完成后,點(diǎn)擊繼續(xù)(如果有一兩個(gè)沒(méi)下載完,安裝完成后也可以下載),創(chuàng)建用戶
4)創(chuàng)建完成后點(diǎn)擊“保存并完成”,一直點(diǎn)擊“繼續(xù)”,到下面界面點(diǎn)擊“開(kāi)始使用Jenkins”
5、插件安裝失敗解決方式
1)插件安裝失敗,大多都是jenkins版本與插件版本不對(duì)應(yīng)導(dǎo)致的;如果可以安裝最新版的jenkins,一般都不會(huì)有插件安裝失敗的問(wèn)題,即使失敗重新安裝一下就好了。
但是現(xiàn)實(shí)中,公司服務(wù)器的jdk是很多項(xiàng)目在用,你不能隨便改版本;所以只能安裝匹配當(dāng)前jdk版本的jenkins,進(jìn)而就可能導(dǎo)致推薦的插件安裝不上。
而且jenkins的插件,相互之間是有依賴關(guān)系的,于是有些插件安裝失敗會(huì)導(dǎo)致另外一些插件也安裝失敗…如此往復(fù),會(huì)導(dǎo)致很多插件都安裝失敗,重試也不行。因?yàn)椴皇蔷W(wǎng)絡(luò)原因?qū)е碌模跃W(wǎng)上很多回答說(shuō),換插件下載地址是解決不了這個(gè)問(wèn)題的。
2)這種情況,只有通過(guò)降低插件的版本來(lái)解決。
首先,要盡可能安裝最新的jenkins,這樣就不會(huì)有插件安裝失敗的問(wèn)題;如果不行,就安裝當(dāng)前jdk支持的最新版本jenkins。比如,我們公司測(cè)試服務(wù)器裝的是jdk1.8,jenkins支持jdk1.8的最新版本是2.356,再往后就不支持1.8了,那么就按照jenkins2.356;
其次,在jenkins插件管理中,提供的都是最新的插件,安裝低版本需要在插件市場(chǎng)下載好、手動(dòng)上傳來(lái)安裝。
3)比如你要安裝插件Pipeline插件,發(fā)現(xiàn)最新的插件安裝不上
這時(shí)你就可以點(diǎn)擊就進(jìn)入了jenkins專門的插件網(wǎng)站;然后選擇release進(jìn)入歷史版本頁(yè),因?yàn)闆](méi)有插件與jenkins的版本對(duì)應(yīng)關(guān)系(我沒(méi)找到),所以需要根據(jù)你安裝版本大致估計(jì)需要往前多少;比如我安裝的是jenkins2.356,那么我就下載2年前的版本;點(diǎn)擊derect link就可下載。
然后在jenkins插件管理的"高級(jí)"頁(yè)簽下,找到手動(dòng)安裝,把剛才下載的hpi文件上傳,點(diǎn)deploy部署即可
5)需要注意的是,插件相互之間有依賴關(guān)系,比如我要安裝一個(gè)SSH插件,它需要先安裝Credentials,再安裝trilead Api,再安裝SSH插件;如果前面的插件你沒(méi)有,它會(huì)自動(dòng)先安裝前面的,而且是最新的。又因?yàn)槟阕钚碌陌惭b不了(比如我),所以導(dǎo)致SSH安裝失敗。
這個(gè)時(shí)候,你要根據(jù)安裝報(bào)錯(cuò),按先后順序安裝。
還有就是,我安裝了一個(gè)1.0.11的trilead Api,接著安裝SSH,這時(shí)安裝失敗;報(bào)錯(cuò)信息說(shuō),當(dāng)前這個(gè)SSH插件要求的trilead Api版本最低是1.67。那么我就需要再去找trilead Api1.67重新安裝,1.67裝好了、再安裝后邊的。
有點(diǎn)繁瑣,但是大家也不用太擔(dān)心,因?yàn)楸仨氁惭b的插件沒(méi)有幾個(gè);而且這些插件的前置插件都差不多;比如Credentials,這個(gè)是證書庫(kù)插件,基本每個(gè)插件都需要依賴它,但是你只要安裝過(guò)一次,后面就不用再管了。
6)這里總結(jié)幾個(gè)必須要的插件
Subversion 我的源碼在svn上,如果源碼在git上就必修要git插件;
publish over ssh 遠(yuǎn)程連接服務(wù)器
Maven Integration 多數(shù)項(xiàng)目需要用到maven部署
NodeJS 部署vue前端要用
三、linux環(huán)境配置
jenkins自動(dòng)部署,本質(zhì)上就是把代碼拉取到服務(wù)器,然后打包;再把包發(fā)到指定的位置,可能在當(dāng)前服務(wù)器、也可能需要傳到遠(yuǎn)程服務(wù)器;最后啟動(dòng)。
所以為了支持打包等任務(wù),需要在部署jenkins的服務(wù)器上安裝一些項(xiàng)目管理工具,如后端java項(xiàng)目一般需要安裝jdk和maven,前端vue項(xiàng)目需要安裝nodejs,安裝完成后再在jenkins全局變量中配置這些工具的信息。
在linux環(huán)境安裝maven和nodejs這里就不展開(kāi)說(shuō)了,下面說(shuō)一下,安裝好之后(可能你們公司的服務(wù)器本來(lái)就有這些工具),jenkins還需要做那些配置。
1、在jenkins客戶端-全局配置中,配置jdk信息
2、在jenkins客戶端-全局配置中,配置maven信息
如果沒(méi)有Maven配置的地方,說(shuō)明Maven插件沒(méi)有安裝成功,先去安裝插件。
3、在jenkins客戶端-全局配置中,配置nodejs信息
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-785730.html
結(jié)語(yǔ):至此,Jenkins的安裝配置全部完成,下面就該使用它進(jìn)行遠(yuǎn)程項(xiàng)目部署了
Jenkins自動(dòng)部署后端maven項(xiàng)目、前端vue項(xiàng)目文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-785730.html
到了這里,關(guān)于Jenkins在Linux環(huán)境下的安裝與配置,包含遇到的問(wèn)題以及解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!