Jenkins持續(xù)集成

image

什么是Jenkins?


Jenkins是一個開源的、提供友好操作界面的持續(xù)集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續(xù)、自動的構(gòu)建測試軟件項目、監(jiān)控外部任務(wù)的運行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。 通常與版本管理工具(SCM)、構(gòu)建工具結(jié)合使用;常用的版本控制工具有SVN、GIT,構(gòu)建工具有Maven、Ant、Gradle。

Jenkins兩大特性


1.持續(xù)集成Continuous integration, CI

image

持續(xù)集成是一種軟件開發(fā)實踐,即團隊開發(fā)成員經(jīng)常集成他們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。許多團隊發(fā)現(xiàn)這個過程可以大大減少集成的問題,讓團隊能夠更快的開發(fā)內(nèi)聚的軟件。

持續(xù)集成有以下幾個優(yōu)點:

  • 從檢出代碼、編譯構(gòu)建、運行測試、結(jié)果記錄、測試統(tǒng)計等都是自動完成的,減少人工干預(yù);

  • 任何時間、任何地點生成可部署的軟件,出現(xiàn)問題,項目成員會被馬上通知到,問題第一時間修復(fù);

  • 增強項目可見性,有效的控制臺日志能幫助我們更好的解決存在的問題。

2.持續(xù)交付Continuous delivery, CD

持續(xù)交付則是經(jīng)典的敏捷的軟件開發(fā)方法的自然延伸,它強調(diào)產(chǎn)品在修改后到部署上線的流程要敏捷話、自動化。甚至一些較小的改變也要盡早的部署上線。通俗的講可以有幾個特點:

  • 代碼越早交付出去,用戶越早能用到,快就是商業(yè)價值;

  • 用戶反饋能及時作出處理,能幫助產(chǎn)品市場人員調(diào)整測策略;

  • 降低修改成本。

image

前后對比


1.傳統(tǒng)的項目部署

image

2.持續(xù)部署

image

Jekins的安裝


官方下載地址:https://jenkins.io/download/

image

我選擇下載的war包,將war包用xftps傳到自己的服務(wù)器后有兩種方式可以啟動jenkins:

第一種: ? 將war包移至tomcat/webapps下,啟動tomcat ? 瀏覽器輸入: 你的IP地址:tomcat開放的端口號

第二種:

進入你war包存放的位置,輸入以下指令后臺啟動jenkins:

nohup java -jar jenkins.war --logfile=server.log --httpPort=8088 > server.log 2>& 1 &

默認情況不指定--httpPort的話jenkins使用的是8080端口,在此我指定的端口是8088

Jenkins的配置


以下為Jenkins的主界面:

image

其中主要的配置都是在系統(tǒng)管理中設(shè)置:

  • 系統(tǒng)設(shè)置里設(shè)置全局設(shè)置相關(guān)的內(nèi)容;

  • 全局安全配置里配置各用戶權(quán)限;

  • 在全局工具里配置相應(yīng)的項目運行環(huán)境,比如JDK,MAVEN等;

  • 在插件管理中添加自己想要使用的插件;

  • 在節(jié)點管理中管理自己的服務(wù)器集群。

image
全局工具配置

image

配置JDK、Git、Maven等路徑。

插件管理

image

在插件管理中插件類型眾多,很大程度的滿足了我們的需求,可以選擇自己需要使用的插件,也可以制作相應(yīng)的插件上傳。

常用的插件:

image

主要介紹以下幾個插件:

GitHub Branch Source Plugin :代碼倉庫;

Deploy to container Plugin :部署代碼至相應(yīng)的容器;

Maven Integration Plugin :構(gòu)建Maven項目需要使用此插件;

SSH PluginSSH Slave Plugin :配置免密登錄某一節(jié)點需要使用到;

節(jié)點管理

image

新建項目


image

選擇需要怎樣構(gòu)建一個項目,在此以構(gòu)建一個自由風(fēng)格的軟件項目為例。

源碼管理

image

設(shè)置倉庫url,構(gòu)建時從此倉庫獲得源碼。這里不僅可以使用Git源碼管理,同樣可以使用SVN,Coding等別的倉庫,需要下載相應(yīng)的插件。

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

image

構(gòu)建觸發(fā)器是指以何種方式來觸發(fā)自動構(gòu)建:

  • 第一種:觸發(fā)遠程構(gòu)建(例如,使用腳本)
image

圖中的身份證令牌(TOKEN_NAME)即為要觸發(fā)構(gòu)建需要的KEY,訪問URL中加入key后才可自動觸發(fā)自動構(gòu)建。

  • 第二種:在其他工程構(gòu)建后觸發(fā);

  • 第三種:定時構(gòu)建;

  • 第四種:GitHub hook trigger for GITScm polling,使用github上的webhook鉤子來實現(xiàn)代碼push時,發(fā)送相應(yīng)的請求,該請求即為我們觸發(fā)自動構(gòu)建的URL加key;

  • 第五種:輪詢SCM,

構(gòu)建

此處選擇的是執(zhí)行相應(yīng)的shell命令:

image
BUILD_ID=DONTKILLME
. /etc/profile
export PROJ_PATH=pwd
export TOMCAT_APP_PATH=/usr/local/tomcat/apache-tomcat-8.5.34

sh $PROJ_PATH/order/deploy.sh

其中前四句指令是在/etc/profile/路徑下添加PROJ_PATH(項目路徑)的環(huán)境配置,TOMVAT_APP_PATH(tomcat路徑),最后一個是執(zhí)行項目中的腳本。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 軟件的持續(xù)集成工具之一,易上手,功能強大,話不多說,干貨奉上。我的博客地址:http://blog.lzoro.c...
    格子Lin閱讀 12,525評論 10 41
  • 教程:https://www.yiibai.com/jenkins/ 本節(jié)內(nèi)容: Jenkins介紹 安裝部署Je...
    達微閱讀 9,097評論 2 77
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 8月暑假時,小葵在家家家過夏天。 有一天小葵晚上看到家家吃飯,自己肚子也餓了。就問家家:家家還有飯嗎? 家家:只有...
    妮妮blabla閱讀 538評論 0 1

友情鏈接更多精彩內(nèi)容