Jenkins 自動(dòng)構(gòu)建部署tomcat項(xiàng)目

前言

Jenkins 是一個(gè)開源的残揉、功能強(qiáng)大的應(yīng)用程序胧后,可持續(xù)集成并且持續(xù)交付項(xiàng)目。Jenkins自動(dòng)構(gòu)建項(xiàng)目的流程原理如下圖所示:


image.png

用戶通過將源碼push到svn或者git等倉庫上抱环,然后Jenkins會(huì)定期pull檢查倉庫中的源碼是否有變化壳快。如發(fā)生變化則會(huì)重新構(gòu)建測(cè)試項(xiàng)目并打包生成相應(yīng)的文件存放在指定的目錄,這過程中的完成情況可設(shè)置以郵件的形式反饋給管理員镇草,并且管理員可登陸到Jenkins上查看相應(yīng)項(xiàng)目的構(gòu)建情況眶痰。接著項(xiàng)目構(gòu)建成功后,Jenkins會(huì)把相應(yīng)的項(xiàng)目包推送到指定的服務(wù)器上的指定目錄下陶夜, 然后執(zhí)行相應(yīng)的命令進(jìn)行項(xiàng)目的部署凛驮。

接著我們就來看看如何使用Jenkins完成tomcat項(xiàng)目的自動(dòng)構(gòu)建部署裆站。

Jenkins的安裝可參考:http://www.reibang.com/p/f2da45e2bac7

1条辟、添加遠(yuǎn)程主機(jī)的登錄密鑰(需要安裝Publish Over SSH插件)

在Jenkinsweb界面中的系統(tǒng)管理->系統(tǒng)配置 添加相應(yīng)的SSH Servers:


image.png

如上圖所示,添加相應(yīng)的SSH Server的Ip宏胯、用戶密碼等信息羽嫡,并設(shè)置遠(yuǎn)程主目錄為根目錄,也可以配置SSH key 實(shí)現(xiàn)免密認(rèn)證訪問肩袍。

2杭棵、Jenkins連接到github(需要安裝git、github等插件)

因?yàn)楸敬螌?shí)驗(yàn)中我需要構(gòu)建https://github.com/charliewch/game-of-life 此項(xiàng)目氛赐,因此在構(gòu)建之前需要保證Jenkins能夠連接上GitHub魂爪。此實(shí)驗(yàn)中,我的Jenkins運(yùn)行在tomcat應(yīng)用上艰管,因此其運(yùn)行用戶為tomcat滓侍,所以需要使用tomcat用戶生成相應(yīng)的ssh key 然后設(shè)置到github 的 setting中。

[root@node4 ~]# su - tomcat
[tomcat@node4 ~]$ ssh-keygen -t rsa -C "xxxxxxxxxxx@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tomcat/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tomcat/.ssh/id_rsa.
Your public key has been saved in /home/tomcat/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:g54fQr0zQhmH2s94cjoLUG+JJ4bsHkiFzN+lnaYqinQ xxxxxxxxx@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| |
|o . . |
| + .. o.. |
| .oo.=+B. |
| .+.=o@+S |
|.o o Bo= o |
|..oE..B X |
|oo.....O + |
|+ o. oo. |
+----[SHA256]-----+
[tomcat@node4 ~]$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJsFEJlHLYBqV0aZzp+rpycv9tCDTIBf3slCtjw8127G6uPsm3Cdwm5zsh410kTsZ8AVxonp1XZ2cir4Dh/Pt+D0V9dvZVrFvQqGgYniLU02W+S0JOutxN6fVLSNsHAKpZ6gvvtgvKX5i5shWDH22egb8ImWLZNP3Pf6haxEOi1nj/HOXQeADBf9mW49tqFjllWVhDG/KLF6GNY+sM70l7vDOY2ULuw29QpNmu3QgWDOJ/3vNcU7LwISS16j50a7L85tzlRF63TZ/vxH8vXOONDefd+gg7jyhTI/SQjYifdt1ejtFxByNrNqvWas3rA9puK7GoVuwcgmK7zf1J3JNN xxxxxxxxxxx@qq.com

把上述的id_rsa.pub內(nèi)容復(fù)制粘貼到github的setting中的SSH and GPG keys上:


image.png

配置完成后牲芋,能夠出現(xiàn)下述信息撩笆,說明tomcat 用戶連接到github已經(jīng)成功。

[tomcat@node4 ~]$ ssh -T git@github.com
Hi charliewch! You've successfully authenticated, but GitHub does not provide shell access.

3缸浦、配置SMTP服務(wù)器

在系統(tǒng)管理->系統(tǒng)設(shè)置中找到下圖的設(shè)置夕冲,并配置相關(guān)的郵件服務(wù)器信息


image.png

4、配置Jenkins任務(wù)

點(diǎn)擊新建任務(wù)裂逐,輸入項(xiàng)目名后選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目并確定保存歹鱼。


image.png

在源碼管理中添加git作為源碼倉庫。


image.png

設(shè)置輪詢SCM為每15分鐘輪詢一次卜高,此處的編寫規(guī)則遵循crontab 任務(wù)的周期編寫規(guī)則弥姻。


image.png

在構(gòu)建增加調(diào)用頂層Maven模板的步驟秩霍,添加目標(biāo)為clean package,用于將相應(yīng)的java項(xiàng)目打包成war包蚁阳,存放在target目錄下铃绒。


image.png

在構(gòu)建后的步驟中,新增Editable Email Notification螺捐,并在高級(jí)中配置觸發(fā)郵件報(bào)警的條件:


image.png

此處設(shè)置的recipient List 為上一步設(shè)置的收件人列表


image.png

繼續(xù)在構(gòu)建后操作添加步驟:Send build artifacts over SSH


image.png

配置完成后點(diǎn)擊保存即可

5颠悬、查看構(gòu)建結(jié)果

在Gameoflife任務(wù)的工作空間中,點(diǎn)擊立即構(gòu)建按鈕觸發(fā)新的構(gòu)建定血,點(diǎn)擊Build history可查看相應(yīng)的構(gòu)建情況:


image.png

另外在相應(yīng)的構(gòu)建任務(wù)中點(diǎn)擊查看控制臺(tái)輸出赔癌,能夠查看構(gòu)建的結(jié)果及相應(yīng)信息輸出,有助于排查錯(cuò)誤澜沟。


image.png

從下圖看到灾票,報(bào)警郵件也觸發(fā)成功了。


image.png

最后茫虽,此時(shí)如果用戶對(duì)修改相應(yīng)的git倉庫的中源碼刊苍,在下一次git輪詢Jenkins會(huì)自動(dòng)觸發(fā)相應(yīng)的項(xiàng)目構(gòu)建并進(jìn)行推送部署,用戶可查看相應(yīng)的git輪詢?nèi)罩緛聿榭摧喸兊那闆r濒析。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末正什,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子号杏,更是在濱河造成了極大的恐慌婴氮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盾致,死亡現(xiàn)場(chǎng)離奇詭異主经,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)庭惜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門罩驻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜈块,你說我怎么就攤上這事鉴腻。” “怎么了百揭?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵爽哎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我器一,道長(zhǎng)课锌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮渺贤,結(jié)果婚禮上雏胃,老公的妹妹穿的比我還像新娘。我一直安慰自己志鞍,他們只是感情好瞭亮,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著固棚,像睡著了一般统翩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上此洲,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天厂汗,我揣著相機(jī)與錄音,去河邊找鬼呜师。 笑死娶桦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汁汗。 我是一名探鬼主播衷畦,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼碰酝!你這毒婦竟也來了霎匈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤送爸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后暖释,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袭厂,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年球匕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纹磺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亮曹,死狀恐怖橄杨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情照卦,我是刑警寧澤式矫,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站役耕,受9級(jí)特大地震影響采转,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瞬痘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一故慈、第九天 我趴在偏房一處隱蔽的房頂上張望板熊。 院中可真熱鬧,春花似錦察绷、人聲如沸干签。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筒严。三九已至,卻和暖如春情萤,著一層夾襖步出監(jiān)牢的瞬間鸭蛙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工筋岛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娶视,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓睁宰,卻偏偏與公主長(zhǎng)得像肪获,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柒傻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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