1.Jenkins簡(jiǎn)介
Jenkins是一個(gè)可擴(kuò)展的持續(xù)集成引擎,是一個(gè)CI系統(tǒng)面殖。主要用于:
- 持續(xù)、自動(dòng)構(gòu)建/測(cè)試軟件項(xiàng)目
- 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)
2.Jenkins的安裝
對(duì)于初學(xué)者可以直接下載jenkins.war文件哭廉,Jenkins官網(wǎng)https://jenkins.io/download/
:
下載到本地后可以直接運(yùn)行: java -jar jenkins.war
注意:機(jī)器要求已經(jīng)安裝jdk脊僚,并配置環(huán)境變量!第一次啟動(dòng)的時(shí)候會(huì)給你一個(gè)密碼遵绰,留意控制臺(tái)輸出辽幌!
還有一種安裝方式就是將下載的war包文件部署到 servlet 容器,然后啟動(dòng)容器椿访,在瀏覽器的URL地址欄中輸入類似http://localhost:8080/這樣的地址即可:
3.Jenkins配置
- 安裝必要的插件
找到【系統(tǒng)管理】-》【插件管理】-》【可安裝插件】乌企,搜索安裝Maven集成插件Maven Integration plugin
和SSH插件用于發(fā)送文件Publish Over SSH
,以后用到其他插件可以自行安裝成玫。 - 配置全局工具(JDK加酵、Git、Maven等)
找到【系統(tǒng)管理】-》【Global Tool Configuration】:
在這個(gè)頁面你可以安裝你是用到的工具哭当,如JDK猪腕、Git、Maven等钦勘,它也支持自動(dòng)安裝陋葡,但不知道為什么我的自動(dòng)安裝未成功,所以選擇了手動(dòng)安裝彻采,然后指定了安裝目錄腐缤,配置了環(huán)境變量等。
-
系統(tǒng)配置
這里可以配置Jenkins的主目錄肛响、工作空間主目錄柴梆、構(gòu)建記錄根目錄、Maven相關(guān)配置终惑、publish over SSH相關(guān)配置等:
注意配置SSH Server時(shí)候要先將遠(yuǎn)程服務(wù)器的公鑰(id_rsa.pub)內(nèi)容放到Jenkins服務(wù)器的authorized_keys中:
到這里我們使用到的配置都Ok了绍在,當(dāng)然還有其他的好多配置項(xiàng),如:Configure Global Security雹有、管理用戶等偿渡,如果有需要的話,也可以進(jìn)行配置霸奕。
4.使用Jenkins部署jar包
- 首先創(chuàng)建一個(gè)git倉(cāng)庫(kù)溜宽,為了方便我就直接在git.oschina.net上創(chuàng)建了:https://git.oschina.net/watermin/jenkins-deploy (項(xiàng)目是公開的需要的同學(xué)可以直接看代碼),git clone 到本地后质帅,創(chuàng)建一個(gè)Maven項(xiàng)目适揉,然后提交上去就行留攒。
注意:項(xiàng)目打包的時(shí)候用到了一個(gè)插件maven-assembly-plugin
,可以將依賴的jar包都打包到lib下 -
在Jenkins管理頁面【新建】項(xiàng)目
-
配置:
其中從上向下依次是:
- 配置項(xiàng)目名稱及描述
- 源碼管理: 我使用的是git嫉嘀,配置git倉(cāng)庫(kù)地址炼邀、分支等
- 構(gòu)件觸發(fā)器:這個(gè)我也不太懂,看其他項(xiàng)目都是選了第一個(gè)
Build whenever a SNAPSHOT dependency is built
- 構(gòu)件環(huán)境:這個(gè)我沒有選擇任一個(gè)
- Pre Steps: 構(gòu)件本項(xiàng)目之前需要做的操作剪侮,通常如果本項(xiàng)目依賴其他項(xiàng)目的jar拭宁,可以在這執(zhí)行maven命令將需要的jar安裝到maven倉(cāng)庫(kù)中
- Build :執(zhí)行maven命令將項(xiàng)目進(jìn)行打包
- Post Steps : 構(gòu)建后期做的一些操作,如:將軟件包發(fā)送到指定的服務(wù)器進(jìn)行部署瓣俯、執(zhí)行一些linux命令等杰标,本項(xiàng)目就是使用了
Send files execute commands over SSH
將jar包發(fā)送到指定的服務(wù)器,并在遠(yuǎn)程服務(wù)器上執(zhí)行一些必要的Linux命令:
cd /web/apps
dir=/web/apps/jenkins-jar-test
TIME=`date "+%Y%m%d%H%M%S"`
FILENAME=jenkins-jar-test.$TIME.tar.gz
if [ -e "$dir" ];then
tar -zcf $FILENAME jenkins-jar-test/
mv $FILENAME /web/bak
rm $dir -rf
fi
mv jenkins-jar/target/jenkins-jar-test-assembly.tar.gz ./
rm -rf jenkins-jar
tar xf jenkins-jar-test-assembly.tar.gz
sh jenkins-jar-test/startup.sh restart
- 測(cè)試
到這里項(xiàng)目就配置完成了彩匕,然后【保存】腔剂,【立即構(gòu)建】,查看控制臺(tái)輸出驼仪,如果順利的話到此就實(shí)現(xiàn)了jar包的自動(dòng)化部署掸犬,在瀏覽器輸入:遠(yuǎn)程服務(wù)器ip:8081
,查看項(xiàng)目有沒有啟動(dòng)成功!
5.使用Jenkins部署war包
安裝Tomcat
如果打的是war的話谅畅,一般我們會(huì)選擇部署到tomcat上登渣,所以首先你要在遠(yuǎn)程機(jī)器上安裝一個(gè)tomcat,具體安裝步驟我就不絮叨了毡泻。在本地的建立一個(gè)Maven項(xiàng)目
打包成war包(悄悄的告訴你這里已經(jīng)有了https://git.oschina.net/watermin/jenkins-deploy.git)新建項(xiàng)目
同上-
配置
其他的配置和上面部署jar包的配置一樣胜茧,唯一不同的就是Post Steps中的Send files or execute commands over SSH
的配置:
Source files: Jenkins 機(jī)器上的war包
Remote directory : 遠(yuǎn)程服務(wù)器上tomcat的ROOT路徑
Exec command :在遠(yuǎn)程機(jī)器上指向的Linux命令
DIR=/usr/local/server/jenkins-war-tomcat
WAR_NAME=jenkins-war-test.war
JENKINS_DIR=/root/.jenkins/workspace/jenkins-war/jenkins-war/target
TIME=`date "+%Y%m%d%H%M%S"`
ps -ef | grep ${DIR} | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
rm -rf work/*
pushd ${DIR}/webapps/ROOT/
[ -e ${WAR_NAME} ] && mv ${WAR_NAME} ../../bak/${TIME}-${WAR_NAME}
pushd jenkins-war/target/
pwd
mv jenkins-war-test.war ../../
pushd ${DIR}/webapps/ROOT/
rm -rf jenkins-war/
jar -xf ${WAR_NAME}
cd ${DIR}
./bin/startup.sh
- 測(cè)試,訪問
遠(yuǎn)程機(jī)器Ip:8082
測(cè)試是否啟動(dòng)成功仇味。
哈哈呻顽,到這里jar包、war包的在Jenkins上的配置已經(jīng)全部完成了丹墨,同學(xué)你的成功了么廊遍,如果有問題歡迎騷擾,吃飯去了贩挣,see you !!