讓我們聊一聊Jenkins的自動(dòng)化部署


1.Jenkins簡(jiǎn)介

Jenkins是一個(gè)可擴(kuò)展的持續(xù)集成引擎,是一個(gè)CI系統(tǒng)面殖。主要用于:

  1. 持續(xù)、自動(dòng)構(gòu)建/測(cè)試軟件項(xiàng)目
  2. 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)

2.Jenkins的安裝

對(duì)于初學(xué)者可以直接下載jenkins.war文件哭廉,Jenkins官網(wǎng)https://jenkins.io/download/:

Jenkins下載頁面.png

下載到本地后可以直接運(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/這樣的地址即可:
Jenkins首頁.png

3.Jenkins配置

  1. 安裝必要的插件
    找到【系統(tǒng)管理】-》【插件管理】-》【可安裝插件】乌企,搜索安裝Maven集成插件Maven Integration plugin和SSH插件用于發(fā)送文件Publish Over SSH,以后用到其他插件可以自行安裝成玫。
  2. 配置全局工具(JDK加酵、Git、Maven等)
    找到【系統(tǒng)管理】-》【Global Tool Configuration】:
全局工具配置.png

在這個(gè)頁面你可以安裝你是用到的工具哭当,如JDK猪腕、Git、Maven等钦勘,它也支持自動(dòng)安裝陋葡,但不知道為什么我的自動(dòng)安裝未成功,所以選擇了手動(dòng)安裝彻采,然后指定了安裝目錄腐缤,配置了環(huán)境變量等。

  1. 系統(tǒng)配置
    這里可以配置Jenkins的主目錄肛响、工作空間主目錄柴梆、構(gòu)建記錄根目錄、Maven相關(guān)配置终惑、publish over SSH相關(guān)配置等:


    系統(tǒng)配置.png

    注意配置SSH Server時(shí)候要先將遠(yuǎn)程服務(wù)器的公鑰(id_rsa.pub)內(nèi)容放到Jenkins服務(wù)器的authorized_keys中:


    ssh公鑰.png

    到這里我們使用到的配置都Ok了绍在,當(dāng)然還有其他的好多配置項(xiàng),如:Configure Global Security雹有、管理用戶等偿渡,如果有需要的話,也可以進(jìn)行配置霸奕。

4.使用Jenkins部署jar包

  1. 首先創(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下
  2. 在Jenkins管理頁面【新建】項(xiàng)目


    image.png
  3. 配置:


    部署jar包的配置.png

    其中從上向下依次是:

  • 配置項(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
  1. 測(cè)試
    到這里項(xiàng)目就配置完成了彩匕,然后【保存】腔剂,【立即構(gòu)建】,查看控制臺(tái)輸出驼仪,如果順利的話到此就實(shí)現(xiàn)了jar包的自動(dòng)化部署掸犬,在瀏覽器輸入:遠(yuǎn)程服務(wù)器ip:8081,查看項(xiàng)目有沒有啟動(dòng)成功!
    訪問項(xiàng)目頁面.png

5.使用Jenkins部署war包

  1. 安裝Tomcat
    如果打的是war的話谅畅,一般我們會(huì)選擇部署到tomcat上登渣,所以首先你要在遠(yuǎn)程機(jī)器上安裝一個(gè)tomcat,具體安裝步驟我就不絮叨了毡泻。

  2. 在本地的建立一個(gè)Maven項(xiàng)目
    打包成war包(悄悄的告訴你這里已經(jīng)有了https://git.oschina.net/watermin/jenkins-deploy.git

  3. 新建項(xiàng)目
    同上

  4. 配置

    部署war包的配置.png

    其他的配置和上面部署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
  1. 測(cè)試,訪問遠(yuǎn)程機(jī)器Ip:8082測(cè)試是否啟動(dòng)成功仇味。

哈哈呻顽,到這里jar包、war包的在Jenkins上的配置已經(jīng)全部完成了丹墨,同學(xué)你的成功了么廊遍,如果有問題歡迎騷擾,吃飯去了贩挣,see you !!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喉前,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子王财,更是在濱河造成了極大的恐慌卵迂,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绒净,死亡現(xiàn)場(chǎng)離奇詭異见咒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挂疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門改览,熙熙樓的掌柜王于貴愁眉苦臉地迎上來下翎,“玉大人,你說我怎么就攤上這事宝当∈邮拢” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵今妄,是天一觀的道長(zhǎng)郑口。 經(jīng)常有香客問我鸳碧,道長(zhǎng)盾鳞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任瞻离,我火速辦了婚禮腾仅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘套利。我一直安慰自己推励,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布肉迫。 她就那樣靜靜地躺著验辞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喊衫。 梳的紋絲不亂的頭發(fā)上跌造,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音族购,去河邊找鬼壳贪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寝杖,可吹牛的內(nèi)容都是我干的违施。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼瑟幕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼磕蒲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起只盹,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤辣往,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鹿霸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體排吴,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年懦鼠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钻哩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屹堰。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖街氢,靈堂內(nèi)的尸體忽然破棺而出扯键,到底是詐尸還是另有隱情,我是刑警寧澤珊肃,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布荣刑,位于F島的核電站,受9級(jí)特大地震影響伦乔,放射性物質(zhì)發(fā)生泄漏厉亏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一烈和、第九天 我趴在偏房一處隱蔽的房頂上張望爱只。 院中可真熱鬧,春花似錦招刹、人聲如沸恬试。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽训柴。三九已至,卻和暖如春妇拯,著一層夾襖步出監(jiān)牢的瞬間幻馁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工乖阵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宣赔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓瞪浸,卻偏偏與公主長(zhǎng)得像儒将,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子对蒲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容