Jenkins教程

Jenkins

這幾天在給公司內(nèi)部做一個jenkins的培訓(xùn),講解一些基本的Jenkins的功能和使用篓吁。順便把培訓(xùn)的內(nèi)容整理一下茫因,寫成了這個教程。

下面的教程都是使用的Jenkins 2.32.1 如果你使用的是其他的版本冻押,可能會有差別盛嘿。

1 Jenkins安裝與配置

1.1 安裝

Jenkins最簡單的安裝方式就是使用預(yù)先編譯好的war包。從 https://jenkins.io/download/ 頁面下載Generic Java Package包就可以了稿茉。

下載頁面部分截圖

下載完畢后芥炭,運行命令

java -jar jenkins.war

就可以運行jenkins了。簡單明了园蝠!

在第一次運行Jenkins的時候,需要注意日志中會出現(xiàn)如下的信息:

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
9ad5910ea6c0406291f960bb10a10691
This may also be found at: /Users/afrag/.jenkins/secrets/initialAdminPassword

上面的日志里就是Jenkins自動生成的初始管理密碼蘸嘶,在后續(xù)的配置過程中要用到陪汽。

1.2 初始配置

打開瀏覽器,輸入地址 http://localhost:8080 就可以進入jenkins况增。 第一次使用jenkins的時候训挡,需要輸入jenkins密碼并進行初始配置歧强,頁面如下:

第一次進入的首頁

輸入初始管理密碼之后摊册,點擊Continue按鈕,進入下一頁茅特,選擇要安裝的插件棋枕。Jenkins的大部分的功能都是由插件來實現(xiàn)的,具體的我們在后面會講解兵睛。

安裝插件頁面

可以默認安裝推薦的插件窥浪,也可以自行選擇要安裝的插件。這里我選擇的是 Select plugins to install寒矿,自行選擇要安裝的插件若债。在這里可以根據(jù)項目的需要蠢琳,安裝不同的插件啊终。當(dāng)日也可以在以后添加新的插件傲须。
在選擇插件頁面,除了默認的插件外例衍,我添加了:

  • Throttle Concurrent Builds Plug-in
  • Checkstyle Plug-in
  • JUnit Plugin
  • Build Pipeline Plugin
  • Conditional BuildStep
  • Role-based Authorization Strategy
  • Publish Over SSH
  • SSH plugin

選擇完插件之后已卸,點擊install,進入插件安裝頁面梦抢。插件安裝需要一段時間(視網(wǎng)速而定愧哟,在國內(nèi)通常不會太快哼蛆,你懂的)霞赫,大家可以去喝杯水,活動活動端衰。
安裝過程中,可能有些plugin會失敗惕味,多retry幾次把玉锌。

插件安裝完之后,會進入創(chuàng)建管理員用戶的界面禀倔,沒有什么好說的参淫。到這里,Jenkins的初始配置就完成了鞋既,可以正式使用了耍铜。

2 Jenkins的項目配置基礎(chǔ)

后續(xù)的構(gòu)建中,我們要使用到Maven和Git棕兼。關(guān)于Maven和Git的安裝伴挚,不在本教程的范圍之內(nèi)。

2.1 創(chuàng)建項目

在Jenkins首頁頁面左上角茎芋,點擊新建菜單,如下圖所示:

新建項目菜單

在新創(chuàng)建的項目中

  • 輸入新項目的名稱HelloWorld(這個不能和其他的項目重名)帚呼。
  • 選擇構(gòu)建項目的類型煤杀,我們這里使用“構(gòu)建一個Maven項目”
  • 點擊OK,創(chuàng)建新的構(gòu)建項目

2.2 配置構(gòu)建項目

新的構(gòu)建項目創(chuàng)建好之后沈自,會自動進入項目配置的頁面。這個頁面總共分為9個部分忌怎,可以通過頁面上方的tab快速進入不同的部分酪夷,如下圖所示:

image.png

2.2.1 General配置

  • 項目名稱:可以修改項目的名稱
  • 描述:描述項目的作用和需要說明的東西
    其他的選項都有相應(yīng)的說明晚岭,可以點擊相應(yīng)的問號(?)圖標(biāo)查看說明(說明都是英文,但是都不太困難)库说。目前我們暫時用不到片择,在后面的進階部分會對其中部分做講解。

2.2.2 源碼管理

源碼管理用來配置從哪里獲取要構(gòu)建的源代碼字管。這里我們選擇Git纤掸。選擇Git后,需要填入如下的信息:

git信息
  • Repository URL:Git的Repository的地址
  • Credential:訪問Git的身份認證的憑證,可以點擊右側(cè)的Add按鈕添加一個新的憑證酌壕,也可以選擇已有的憑證。我們這里通過Add添加一個新的憑證果港。關(guān)于添加憑證的詳細內(nèi)容糊昙,可以參考后面的進階部分的憑證相關(guān)的內(nèi)容。
    -Branches to build: 這里可以選擇要拉取代碼的分支萝衩、tag等信息,從而獲取指定版本的代碼千劈。默認使用master分支牌捷。

2.2.3 構(gòu)建觸發(fā)器

構(gòu)建觸發(fā)器中的配置決定了我們的構(gòu)建項目什么時候會執(zhí)行。在使用Maven項目的時候暗甥,我們最常用的構(gòu)建觸發(fā)器有以下幾種:

  • Build whenever a SNAPSHOT dependency is built:當(dāng)前項目所依賴的其他的SNAPSHOT組件構(gòu)建成功的時候撤防。
  • Build after other projects are built : 當(dāng)指定的project構(gòu)建之后,構(gòu)建當(dāng)前project
  • Build periodically:定時構(gòu)建
  • Poll SCM:定時查詢是否有更新焰情,有更新則進行構(gòu)建

如果希望沒錯人工進行構(gòu)建剥懒,可以什么都不選。

我們這里選擇Poll SCM,設(shè)置如下圖所示:


Poll SCM設(shè)置
Poll SCM設(shè)置

上面的設(shè)置中验游,每15分鐘查詢一次代碼倉庫保檐,如果有代碼變化的話,就重新進行構(gòu)建夜只。

2.2.4 構(gòu)建

在maven項目中扔亥,我們采用maven來進行編譯、測試和打包旅挤。只需要指定pom文件,以及相應(yīng)的maven參數(shù)就可以了签舞。


構(gòu)建設(shè)置
構(gòu)建設(shè)置

2.2.5 部署

可以采用執(zhí)行shell命令的方式來進行部署。如下圖所示:


shell腳本進行部署
shell腳本進行部署

2.3 總結(jié)

在日常工作中吠架,jenkins用來做持續(xù)集成师妙,包括從源碼倉庫獲取代碼默穴、編譯、測試蓄诽、打包、部署乙埃。這些步驟都可以通過jenkins完成包券。

3 Jenkins的項目配置進階

前面講了最基本的jenkins實現(xiàn)持續(xù)集成的配置唁影。下面來講講常用的一些其他的“高級”一些的配置遇伞。

3.1 使用便利進行構(gòu)構(gòu)建

有些時候捶牢,我們需要在構(gòu)建中添加一些參數(shù)變量。例如:源碼的branch渐排、版本號等等灸蟆。
在Jenkins中,參數(shù)變量可以分為3類:

  • 內(nèi)置變量
  • 全局變量
  • 局部變量

3.1.1 內(nèi)置變量

內(nèi)置的參數(shù)變量主要是和單次構(gòu)建相關(guān)的預(yù)先定義的變量吓歇。在前面的 2.2.5 節(jié)的“shell腳本進行部署”的圖例中杏慰,可以看到在下方有一個鏈接"the list of available environment variables",其中列出了所有可以使用內(nèi)置變量及其含義轰胁。

3.1.2 全局變量

全局變量就是所有的jenkins項目都可以引用的變量朝扼。在jenkins首頁,點擊左上角的“系統(tǒng)管理”菜單榛斯,然后在出現(xiàn)的頁面中選擇“系統(tǒng)設(shè)置”搂捧;在出現(xiàn)的頁面中,在如下圖所示的區(qū)域中王凑,就可以設(shè)置全局變量:


jenkins全局變量
jenkins全局變量

3.1.3 局部變量

局部變量在各個構(gòu)建項目內(nèi)部設(shè)置聋丝。在項目配置的General區(qū)域中,選中“參數(shù)化構(gòu)建”,就可以添加局部變量了百姓。如下圖所示:


jenkins局部變量
jenkins局部變量

3.1.4 變量的使用

在項目的配置中每篷,我們可以使用 ${變量名} 的方式來引用變量。(我的經(jīng)驗是在絕大部分地方可以使用子库,還是有一些插件的配置中不能使用變量)矗晃。

3.2 遠程部署

遠程部署通常分為以下幾個步驟:

  1. 關(guān)閉舊的程序
  2. 將新的程序包上傳到遠程機器
  3. 啟動新的程序

第二步可能有些小的變化,例如將程序包上傳到倉庫仓技,然后遠程機器從倉庫獲取等等俗他。但是萬變不離其宗。

這些步驟都可以通過ssh/scp來實現(xiàn)地沮。

需要指出的是,如果是通過ssh來遠程啟動應(yīng)用程序危融,在構(gòu)建關(guān)閉的時候雷袋,會自動關(guān)閉ssh所啟動的所有的進程。如果構(gòu)建的結(jié)果是需要長期執(zhí)行的(通常情況下都是這樣)蛋勺,那么我們可以結(jié)合指定BUILD_ID和使用nohup命令率寡,來保證程序在后臺運行。

3.3 觸發(fā)其他的構(gòu)建項目

正在撰寫乾蛤,請稍待捅僵。

3.4 清除舊的構(gòu)建

正在撰寫,請稍待上荡。

4 Jenkins安全

正在撰寫馒闷,請稍待。

6 Pipeline

正在撰寫逛薇,請稍待疏虫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卧秘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翅敌,更是在濱河造成了極大的恐慌蚯涮,老刑警劉巖焊唬,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件看靠,死亡現(xiàn)場離奇詭異液肌,居然都是意外死亡嗦哆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門粥喜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橘券,“玉大人,你說我怎么就攤上這事锋华〖埽” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵纳猫,是天一觀的道長竹捉。 經(jīng)常有香客問我,道長物遇,這世上最難降的妖魔是什么憾儒? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任起趾,我火速辦了婚禮,結(jié)果婚禮上训裆,老公的妹妹穿的比我還像新娘。我一直安慰自己属百,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渔呵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耕驰。 梳的紋絲不亂的頭發(fā)上录豺,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天巩检,我揣著相機與錄音,去河邊找鬼兢哭。 笑死迟螺,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矩父。 我是一名探鬼主播窍株,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼后裸!你這毒婦竟也來了冒滩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤因苹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凶杖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘸秘,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年哮翘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饭寺。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡艰匙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出署驻,到底是詐尸還是另有隱情健霹,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布宣吱,位于F島的核電站瞳别,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疤坝。R本人自食惡果不足惜垒棋,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畔裕。 院中可真熱鬧,春花似錦具练、人聲如沸甜无。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奥帘。三九已至,卻和暖如春松蒜,著一層夾襖步出監(jiān)牢的瞬間已旧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工惊楼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吐句,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓攀芯,卻偏偏與公主長得像文虏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子年鸳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

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