??(不要錯過:资鳌)【CI/CD技術(shù)專題】「Jenkins實戰(zhàn)系列」(1)全流程介紹Jenkins環(huán)境搭建+基礎(chǔ)部署配置(Windows->Linux)

背景

  • 在實際開發(fā)中铣焊,我們經(jīng)常要一邊開發(fā)一邊測試,當(dāng)然這里說的測試并不是程序員對自己代碼的單元測試罕伯,而是同組程序員將代碼提交后曲伊,由測試人員測試;
  • 前后端分離后追他,經(jīng)常會修改接口坟募,然后重新部署岛蚤;這些情況都會涉及到頻繁的打包部署;

手動打包常規(guī)步驟:

  1. git commit + git push 提交代碼
  2. 問一下同組小伙伴有沒有要提交的代碼
  3. 拉取代碼并打包(war包懈糯,或者jar包)
  4. 上傳到Linux服務(wù)器
  5. 查看當(dāng)前程序是否在運行
  6. 關(guān)閉當(dāng)前程序
  7. 啟動新的jar包
  8. 觀察日志看是否啟動成功
  9. 如果有同事說涤妒,自己還有代碼沒有提交......再次重復(fù)1到8的步驟。

基于以上的痛點赚哗,有一種工具能夠?qū)崿F(xiàn)届腐,將代碼提交到git后就自動打包部署勒,答案是肯定的:現(xiàn)在這里主要介紹jenkins

當(dāng)然除了Jenkins以外蜂奸,也還有其他的工具可以實現(xiàn)自動化部署犁苏,如Hudson、gitlab CI/CD等扩所。只是Jenkins相對來說围详,使用得更廣泛。

文章結(jié)構(gòu):

image

Jenkins服務(wù)器搭建及基本配置

簡介

Jenkins是一個開源軟件項目祖屏,是基于Java開發(fā)的一種持續(xù)集成工具助赞,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個開放易用的軟件平臺袁勺,使軟件的持續(xù)集成變成可能雹食。

Jenkins自動化部署實現(xiàn)原理

image

Jenkins部署環(huán)境

基本環(huán)境

  1. jdk環(huán)境,Jenkins是java語言開發(fā)的期丰,因需要jdk環(huán)境群叶。

  2. git/svn客戶端,因一般代碼是放在git/svn服務(wù)器上的钝荡,我們需要拉取代碼街立。

  3. maven客戶端,因一般java程序是由maven工程埠通,需要maven打包赎离,當(dāng)然也有其他打包方式,如:gradle

以上是自動化部署java程序jenkins需要的基本環(huán)境端辱,請自己提前安裝好梁剔,下面著重講解Jenkins的安裝部署配置

Jenkins安裝

  1. 下載安裝包jenkins.war舞蔽;

  2. 在安裝包根路徑下荣病,運行命令 java -jar jenkins.war --httpPort=8080,(linux環(huán)境喷鸽、Windows環(huán)境都一樣)众雷;

  3. 打開瀏覽器進入鏈接 http://localhost:8080.

  4. 填寫初始密碼灸拍,激活系統(tǒng)

image
  1. 進入插件安裝選擇

這里建議選擇做祝,推薦安裝的插件砾省,保證基本常用的功能可以使用。

中文版


image

英文版


image

  1. 選擇后混槐,進入插件安裝頁面
    [圖片上傳失敗...(image-bc838b-1625587098674)]

  2. 設(shè)置初始用戶和密碼


    image
  3. 進入系統(tǒng)编兄,安裝完成


    image

Jenkins基本配置

系統(tǒng)初始化配置

image
  1. Configure System (系統(tǒng)設(shè)置)
  • 在系統(tǒng)設(shè)置這里,我們只需要設(shè)置最后面的一項声登,配置遠程服務(wù)器地址狠鸳,

  • 即我們代碼最終運行的服務(wù)器地址信息,就像我們之前手動部署時使用xshell登錄Linux服務(wù)器一樣悯嗓,

  • 當(dāng)然這里是可以配置多臺遠程Linux服務(wù)器的件舵,配置完成后點擊保存即可,為后面我們配置自動化部署做準備脯厨,配置如下圖

image
  1. Configure Global Security (全局安全配置)

配置用戶相關(guān)的權(quán)限

image

配置鉤子程序(當(dāng)用代碼更新時通知)訪問權(quán)限铅祸,避免報403錯誤

默認是勾選上了的,這里去掉勾選


image
  1. Global Tool Configuration (全局工具配置 )

配置maven的全局settings路徑

image

配置jdk

image

配置git

image

配置maven的安裝路徑

image

配置必要插件

主要是檢查如下這兩個插件是否已安裝

  • 插件1:Publish over SSH
  • 插件2:Deploy to container Plugin
image

Jenkins自動化部署

我們配置一個自動化部署的的java程序(springBoot+maven+gitHub)合武,基本必要配置就差不多了临梗,后面配置過程中如果需要在配置

Jenkins服務(wù)器上創(chuàng)建項目和配置

大體步驟:General(基礎(chǔ)配置)--》源碼管理--》構(gòu)建觸發(fā)器--》構(gòu)建環(huán)境--》構(gòu)建--》構(gòu)建后操作

  1. 創(chuàng)建一個工程
image
  1. General(基礎(chǔ)配置)

僅需填寫標準部分稼跳,其他可不填寫

image
  1. 源碼管理
image

上圖中點擊“添加”按鈕添加一組賬號和密碼

image
  1. 構(gòu)建觸發(fā)器
image

如上圖:當(dāng)前項目的回調(diào)地址為:

http://localhost:8080/job/jenkinsSpringBootDemo/build?token=token_demo2

只要執(zhí)行這個地址(在瀏覽器上訪問改地址)盟庞,該項目就會發(fā)起一次構(gòu)建項目,即拉取代碼打包部署操作汤善,在實際中什猖,是由git服務(wù)器回調(diào)該地址。

  1. 構(gòu)建環(huán)境(無需配置)

  2. 構(gòu)建


    image
  3. 構(gòu)建后操作

    • 構(gòu)建后操作的意思是红淡,jar打包好后卸伞,要將jar發(fā)送到哪里去,發(fā)送后去和啟動等锉屈。
    • 這里需要提前在需要部署的服務(wù)器上配置好路徑荤傲,寫好啟動和停止項目的腳本,并設(shè)置為可以執(zhí)行的腳本颈渊,
    • 其實就是我們平時在Linux上手動部署項目操作的腳本遂黍。
image

案例中給出的start.sh腳本如下:

#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_131
echo ${JAVA_HOME}
echo 'Start the program : demo2-0.0.1-SNAPSHOT.jar'
chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jar
echo '-------Starting-------'
cd /home/ldp/app/
nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar &
echo 'start success'

案例中給出的stop.sh腳本如下:

#!/bin/bash
echo "Stop Procedure : demo2-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep java | grep demo2-0.0.1-SNAPSHOT.jar | awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi

Linux服務(wù)器配置

在Linux 服務(wù)上,上傳上文中的兩個腳本俊嗽,用于啟動和停止

image

GitHub服務(wù)器配置

在GitHub服務(wù)器上的指定項目里面配置上文中提到的回調(diào)地址

特別注意:為了保證回調(diào)地址網(wǎng)可以使用雾家,

所以,下面配置的是外網(wǎng)映射地址绍豁。

image

可以參考:官方文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芯咧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敬飒,老刑警劉巖邪铲,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異无拗,居然都是意外死亡带到,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門英染,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揽惹,“玉大人,你說我怎么就攤上這事四康√虏” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵闪金,是天一觀的道長慕嚷。 經(jīng)常有香客問我,道長毕泌,這世上最難降的妖魔是什么喝检? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮撼泛,結(jié)果婚禮上挠说,老公的妹妹穿的比我還像新娘。我一直安慰自己愿题,他們只是感情好损俭,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著潘酗,像睡著了一般杆兵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仔夺,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天琐脏,我揣著相機與錄音,去河邊找鬼缸兔。 笑死日裙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惰蜜。 我是一名探鬼主播昂拂,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抛猖!你這毒婦竟也來了格侯?” 一聲冷哼從身側(cè)響起鼻听,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎联四,沒想到半個月后撑碴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡碎连,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了驮履。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鱼辙。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖玫镐,靈堂內(nèi)的尸體忽然破棺而出倒戏,到底是詐尸還是另有隱情,我是刑警寧澤恐似,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布杜跷,位于F島的核電站紊撕,受9級特大地震影響声诸,放射性物質(zhì)發(fā)生泄漏捆憎。R本人自食惡果不足惜炼七,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一骡送、第九天 我趴在偏房一處隱蔽的房頂上張望蠢甲。 院中可真熱鬧吱殉,春花似錦攒霹、人聲如沸忧陪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘶摊。三九已至延蟹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叶堆,已是汗流浹背阱飘。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虱颗,地道東北人俯萌。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像上枕,于是被迫代替她去往敵國和親咐熙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

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