国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Jenkins實(shí)現(xiàn)項(xiàng)目自動(dòng)化部署

IT那活兒 / 2098人閱讀
基于Jenkins實(shí)現(xiàn)項(xiàng)目自動(dòng)化部署


背景



Jenkins是基于Java開發(fā)的一種持續(xù)集成工具,主要用于持續(xù)、自動(dòng)構(gòu)建/測(cè)試軟件項(xiàng)目、監(jiān)控外部任務(wù)的運(yùn)行,功能包括:

  • 持續(xù)的軟件版本發(fā)布/測(cè)試項(xiàng)目。

  • 監(jiān)控外部調(diào)用執(zhí)行的工作。


為什么使用Jenkins?


先來看看一般的后端項(xiàng)目發(fā)布流程:

1、本地或打包服務(wù)器利用maven打成war包

2、遠(yuǎn)程或者SSH連上項(xiàng)目服務(wù)器

3、停掉tomcat,刪除舊包和緩存,將新打的包放進(jìn)去

4、重啟tomcat,完成

看似步驟簡(jiǎn)單,其實(shí)占用了大量開發(fā)和運(yùn)維的時(shí)間。


使用Jenkins后:

1、點(diǎn)擊立即構(gòu)建,完成。


什么?點(diǎn)擊個(gè)按鈕就完成了?沒錯(cuò),就是個(gè)按鈕。其實(shí)在你點(diǎn)擊按鈕后Jenkins已經(jīng)幫你把上述該走的流程后臺(tái)跑了一遍了。再搭配Gitlab的githooks可實(shí)現(xiàn)提交代碼后自動(dòng)構(gòu)建發(fā)布,連按鈕也不需要點(diǎn)了。


在開發(fā)項(xiàng)目的過程中會(huì)部署測(cè)試環(huán)境來驗(yàn)證產(chǎn)品功能,重復(fù)以上操作會(huì)顯得很繁瑣,浪費(fèi)大量時(shí)間,所以使用Jenkins來實(shí)現(xiàn)持續(xù)集成,對(duì)整個(gè)開發(fā)項(xiàng)目的過程有著重要的意義。使用Jenkins后,可節(jié)省手動(dòng)發(fā)布時(shí)間成本,避免人工打包出錯(cuò),同時(shí)也能及時(shí)發(fā)現(xiàn)系統(tǒng)開發(fā)集成過程中產(chǎn)生的問題。


本文接下來介紹如何基于Jenkins+Maven+Git(GitLab)持續(xù)集成Java項(xiàng)目。




流程概覽



上圖為Java測(cè)試環(huán)境從代碼提交到應(yīng)用部署的自動(dòng)化完整流程。

下面我們具體來看Jenkins的安裝和配置。




環(huán)境準(zhǔn)備



現(xiàn)場(chǎng)測(cè)試環(huán)境如下,兩臺(tái)Linux虛擬機(jī),安裝好以下軟件:

名稱

IP

安裝軟件

代碼托管、持續(xù)集成

192.168.3.144

JDK1.8、Maven3.5.4、Git1.7.1、Gitlab、Jenkins

應(yīng)用服務(wù)器

192.168.3.145

JDK1.8、Tomcat


分別檢驗(yàn)上述軟件的安裝情況:


檢驗(yàn)JDK環(huán)境


檢驗(yàn)Maven


檢驗(yàn)Git


檢驗(yàn)Gitlab


添加訪問Gitlab的ssh憑證

在192.168.3.144使用root用戶生成公鑰和私鑰

執(zhí)行ssh-keygen-t rsa,在/root/.ssh/目錄生成公鑰和私鑰

id_rsa:私鑰文件
id_rsa.pub:公鑰文件


把生成的公鑰放在Gitlab中

登錄192.168.3.144->點(diǎn)擊頭像->Settings->SSHKeys


Jenkins提前安裝完畢。以Tomcat的war包形式來安裝,啟Jenkins。

安裝相關(guān)插件

發(fā)布插件Deploy to container Plugin

Maven插件Maven Integration plugin

Git插件Git plugin

SSH插件Publish Over SSH

Gitlab插件GitLab Plugin

Gitlab鉤子插件Gitlab Hook Plugin


在Jenkins中配置SSHServers



創(chuàng)建一個(gè)Maven工程



構(gòu)建Maven項(xiàng)目


源碼管理

填寫git地址信息,由于已配置ssh,無需配置認(rèn)證憑據(jù)


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

Buildwhen a change is pushed to GitLab:檢測(cè)到Gitlab項(xiàng)目代碼提交后就觸發(fā)


同時(shí)需要在Gitlab的Webhooks中配置上圖圈出的地址,勾上Pushevents觸發(fā)



打包前步驟

根據(jù)自己需求可以添加一些操作:如一些shell命令


Build打包構(gòu)建

RootPOM:指定pom.xml的文件路徑(這里是相對(duì)路徑)

Goalsand options:mvn的選項(xiàng),構(gòu)件參數(shù)


構(gòu)建后操作

把構(gòu)建好的jar包推送至應(yīng)用主機(jī),并執(zhí)行啟停腳本拉起應(yīng)用服務(wù)


stop.sh





#!/bin/sh

APP_NAME=amp_dev_server.jar


tpid=`ps-ef|grep $APP_NAME|grep -v grep|grep -v kill|awk {print $2}`

if [${tpid} ]; then

echoStop Process...

kill-15 $tpid

fi

sleep5

tpid=`ps-ef|grep $APP_NAME|grep -v grep|grep -v kill|awk {print $2}`

if [${tpid} ]; then

echoKill Process!

kill-9 $tpid

else

echoStop Success!

fi






向上滑動(dòng)查看更多內(nèi)容


start.sh





#!/bin/sh

source/etc/profile

APP_NAME=amp_dev_server.jar


tpid=`ps-ef|grep $APP_NAME|grep -v grep|grep -v kill|awk {print $2}`

if [${tpid} ]; then

echo App is running.

else

echo App is NOT running.

fi

#!/bin/sh

rm-f tpid

nohupjava -jar /home/gpadmin/soft/amp_dev_server/amp_dev_server.jar--spring.profiles.active=test>/home/gpadmin/soft/amp_dev_server/amp_dev_server.log 2>&1&

echo$! > tpid

echoStart Success!






向上滑動(dòng)查看更多內(nèi)容


到此配置完成,保存即可。




構(gòu)建項(xiàng)目



Jenkins常用構(gòu)建方式有三種:

  • 手動(dòng)構(gòu)建:用于測(cè)試環(huán)境或者預(yù)上線環(huán)境部署,只需要在Jenkins的界面點(diǎn)立即構(gòu)建即可執(zhí)行

  • 觸發(fā)式構(gòu)建:用于開發(fā)環(huán)境部署,開發(fā)人員可以push代碼或者合并代碼到Gitlab項(xiàng)目的開發(fā)分支上,Jenkins就自動(dòng)部署代碼到對(duì)應(yīng)服務(wù)器

  • 定時(shí)構(gòu)建:在參數(shù)化構(gòu)建基礎(chǔ)上添加,可以每天定時(shí)打包


驗(yàn)證項(xiàng)目是否構(gòu)建成功



Jenkins使用各種顏色表示任務(wù)當(dāng)前的狀態(tài):

藍(lán)色:任務(wù)最近一次構(gòu)建是成功的

紅色:任務(wù)最后一次構(gòu)建是失敗的

黃色:任務(wù)最后一次構(gòu)建表示成功了,但不穩(wěn)定(主要是因?yàn)橛惺〉臏y(cè)試)

灰色:任務(wù)從未被執(zhí)行過或被禁用了


Jenkins使用一組天氣圖標(biāo)表示任務(wù)長(zhǎng)期的一個(gè)狀態(tài),他們分別是:

  • 萬(wàn)里晴空,任務(wù)80%以上的集成都是成功的

  • 稍有烏云,任務(wù)有60%~80%的集成是成功的

  • 烏云密布,任務(wù)只有40%~60%的集成是成功的

  • 陰雨綿綿,任務(wù)的集成成功率只有20%~40%

  • 電閃雷鳴,任務(wù)的集成成功率不到20%




總結(jié)



實(shí)際上,產(chǎn)品在從需求到部署的過程中,會(huì)經(jīng)歷若干種不同環(huán)境,例如各種自動(dòng)化測(cè)試運(yùn)行環(huán)境、仿真環(huán)境、生產(chǎn)環(huán)境等。這些環(huán)境的搭建、配置、管理過程中,產(chǎn)品對(duì)應(yīng)也需要在不同環(huán)境中進(jìn)行部署,狀況也會(huì)比較復(fù)雜,從頭到尾地全自動(dòng)持續(xù)部署的確困難。但如果能克服困難,做到持續(xù)交付,保證代碼在整個(gè)上線流程環(huán)境沒問題,整個(gè)團(tuán)隊(duì)就能做到有的放矢,也更加有力的保證了代碼上線質(zhì)量。所以,持續(xù)集成、持續(xù)部署持續(xù)交付提供了一個(gè)優(yōu)秀的DevOps環(huán)境,對(duì)于整個(gè)團(tuán)隊(duì)來說,好處與挑戰(zhàn)并行。無論如何,頻繁部署、快速交付以及開發(fā)測(cè)試流程自動(dòng)化都將成為未來軟件工程的重要組成部分。未來已經(jīng)改變,不變者終將被淘汰。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/130189.html

相關(guān)文章

  • 使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(二、構(gòu)建部署篇)

    摘要:如果還沒有搭建好可以使用的,請(qǐng)先移步到這篇文章進(jìn)行搭建使用自動(dòng)部署服務(wù)一搭建篇目標(biāo)通過實(shí)現(xiàn)推送代碼后自動(dòng)部署基于的服務(wù)準(zhǔn)備工作獲取示例項(xiàng)目或者直接復(fù)制以下文件內(nèi)容獲取示例項(xiàng)目項(xiàng)目文件頁(yè)面文件鏡像文件部署文件部署腳本文件頁(yè)面文件項(xiàng)目很簡(jiǎn)單, 如果還沒有搭建好可以使用 Docker 的 Jenkins,請(qǐng)先移步到這篇文章進(jìn)行搭建 使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(一、Je...

    denson 評(píng)論0 收藏0
  • Jenkins實(shí)現(xiàn)前端項(xiàng)目動(dòng)化集成打包部署

    摘要:原博客地址實(shí)現(xiàn)前端項(xiàng)目自動(dòng)化集成打包部署掘金地址前言以前寫前端項(xiàng)目打包部署,都是手動(dòng)運(yùn)行命令,打包完,然后壓縮,再上傳到服務(wù)器解壓。驗(yàn)證提交代碼,成功自動(dòng)打包部署提交代碼,觀察界面,出現(xiàn)構(gòu)建任務(wù),構(gòu)建完成之后收到郵件通知。 原博客地址:https://yezihaohao.github.io/2017/09/09/Jenkins實(shí)現(xiàn)前端項(xiàng)目自動(dòng)化集成打包部署/掘金地址:https://...

    Guakin_Huang 評(píng)論0 收藏0
  • 在Kubernetes上部署和伸縮Jenkins

    摘要:在本教程中,我們將使用在上部署和伸縮。它主要用來幫助操作人員部署伸縮更新和維護(hù)服務(wù),以及提供服務(wù)發(fā)現(xiàn)機(jī)制來管理節(jié)點(diǎn)集群上的容器化應(yīng)用程序。代理則使用,網(wǎng)絡(luò)啟動(dòng)協(xié)議啟動(dòng),因此容器能夠在啟動(dòng)和運(yùn)行之后自動(dòng)連接到。賬戶我們將在上部署集群。 在本教程中,我們將使用Rancher在Kubernetes上部署和伸縮Jenkins。按照本文的步驟一步步來,你將會(huì)使用到我們用來測(cè)試實(shí)際構(gòu)建作業(yè)的mas...

    Pines_Cheng 評(píng)論0 收藏0
  • Docker容器系列教程(三):jenkins環(huán)境搭建與插件安裝

    摘要:本文將使用這些命令搭建一個(gè)持續(xù)集環(huán)境,解決不能聯(lián)網(wǎng)的問題來安裝各種常用插件。總結(jié)通過本章學(xué)習(xí),你已經(jīng)知道了基于如何在環(huán)境下搭建環(huán)境,并創(chuàng)建一個(gè)項(xiàng)目。以為基礎(chǔ)框架,為數(shù)據(jù)訪問層,為權(quán)限授權(quán)層,對(duì)常用數(shù)據(jù)進(jìn)行緩存,基于構(gòu)建的作為前端框架。 回顧:上一文對(duì)Docker常用的命令以羅列的方式做了一個(gè)詳盡的介紹。本文將使用這些命令搭建一個(gè)jenkins持續(xù)集環(huán)境,解決jenkins不能聯(lián)網(wǎng)的問題...

    vvpvvp 評(píng)論0 收藏0
  • 一些小團(tuán)隊(duì)的動(dòng)化運(yùn)維實(shí)踐經(jīng)驗(yàn)

    摘要:行業(yè)內(nèi)各巨頭的自動(dòng)化運(yùn)維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及。面對(duì)這么多問題,我就想啊,如何在低成本情況下實(shí)現(xiàn)自動(dòng)化運(yùn)維。自動(dòng)擴(kuò)縮容通過配置告警規(guī)則,調(diào)用相應(yīng)就可以實(shí)現(xiàn)實(shí)戰(zhàn)以上就是筆者關(guān)于自動(dòng)化運(yùn)維的一些實(shí)踐。 行業(yè)內(nèi)各巨頭的自動(dòng)化運(yùn)維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及。現(xiàn)在最終的樣子大家都知道了,但問題是如何根據(jù)自己團(tuán)隊(duì)當(dāng)前的情況一步步向那個(gè)目標(biāo)演進(jìn)?筆者所在團(tuán)隊(duì),三...

    princekin 評(píng)論0 收藏0
  • Docker在開發(fā)、測(cè)試中的應(yīng)用

    摘要:對(duì)測(cè)試的影響讓單元測(cè)試運(yùn)行的更順暢單元測(cè)試驅(qū)動(dòng)開發(fā)是一個(gè)很好的應(yīng)用程序開發(fā)方式,單元測(cè)試往往也是和代碼一起被提交到代碼倉(cāng)庫(kù)中。但是很多單元測(cè)試通常依賴于很多其他服務(wù),而這些服務(wù)的標(biāo)準(zhǔn)化配置往往是一個(gè)難點(diǎn),如數(shù)據(jù)庫(kù)的搭建防火墻的配置等。 傳統(tǒng)的軟件開發(fā)、測(cè)試、運(yùn)維需要三個(gè)團(tuán)隊(duì)在三個(gè)不同的環(huán)境中進(jìn)行,而三個(gè)環(huán)境的不同引發(fā)了很多的問題。如:工作內(nèi)容的重復(fù);開發(fā)環(huán)境中可運(yùn)行的程序在測(cè)試和運(yùn)維環(huán)...

    mating 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<