欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Jenkins中的一鍵部署與版本更新-創(chuàng)新互聯(lián)

Jenkins作為一款持續(xù)集成,持續(xù)部署的軟件,是由java編寫(xiě)的一款開(kāi)源軟件

創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供圖們企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、html5、小程序制作等業(yè)務(wù)。10年已為圖們眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

? 作為一款非常流行的CI(持續(xù)集成)工作,用于構(gòu)建和測(cè)試各種項(xiàng)目

? Jenkins 的主要功能是監(jiān)視重復(fù)工作的執(zhí)行,例如軟件工程的構(gòu)建或在 cron下設(shè)置的 jobs

DEV ---> GIT ---->CI(持續(xù)集成) ----->CD(持續(xù)部署)

Jenkins中的一鍵部署與版本更新

使用過(guò)程:

Dev客戶(hù)端

1.搭建好git服務(wù)器,并使用git add . +git commit -m ‘project’ 上傳至本地文件

2.Git tag v 1.0 ----打標(biāo)簽 git push,git push --tag推上去

 Git端

3.登錄到github服務(wù)器,新建項(xiàng)目與群組,并將客戶(hù)端的git倉(cāng)庫(kù)使用http推到項(xiàng)目中

 Jenkins服務(wù)端

4.在jenkins服務(wù)器上,建立自己的工程,其中添加git-parameter,并輸入gitlab相關(guān)url使其能夠與gitlab的項(xiàng)目通信,

5.可以在主菜單后會(huì)可以在build with parameter中看到各種上傳到gitlab上的版本,通過(guò)開(kāi)始構(gòu)建,將gitlab上的項(xiàng)目下載到j(luò)enkens上,搭建web,將文件打包放在web上方便分發(fā)

6.編寫(xiě)腳本,實(shí)現(xiàn)Jenkins中文件的自動(dòng)部署,版本更新


本篇主要對(duì)步驟5,6進(jìn)行自動(dòng)管理:

步驟5:將Jenkins上的文件一鍵部署至http共享

Jenkins的http自動(dòng)分發(fā):在工程設(shè)置中,添加構(gòu)建步驟

Jenkins中的一鍵部署與版本更新

Jenkins中的一鍵部署與版本更新

newcodes_${freetag}:路徑是/var/lib/jenkins/workspace/freesttle

#將版本文件從newcodes_${freetag}放到deploy_dir下

 ------------------------------------------------------------------------

shell代碼

deploy_dir= /var/www/html/deploy/packages/

cp -r newcodes_${freetag} $deploy_dir

rm -rf $deploy_dir/newcodes_${freetag}/.git #刪除拷貝后原版本文件中的.git文件

cd $deploy_dir

在新的路徑下打包拷貝過(guò)來(lái)的版本文件

tar czf newcodes_${freetag}.tar.gz newcodes_${freetag}

rm -rf newcodes_${freetag} #刪除拷貝過(guò)來(lái)的源文件,只留tar包

md5sum newcodes_${freetag}.tar.gz | awk '{print $1}' > newcodes_${freetag}.tar.gz.md5

#用md5計(jì)算出tar包校驗(yàn)值,存放在對(duì)應(yīng)文件下

 -------------------------------------------------------------------------------

 新建立一個(gè)  mp_live_version 版本更新功能

#新版本(live_version),上一個(gè)版本(lastest_version)

#[ -e存在這個(gè)路徑] &&則將live_version內(nèi)容寫(xiě)入lastest_version

#將新的輸入內(nèi)容寫(xiě)如新版本

[ -e /var/www/html/deploy/live_version ] && cat /var/www/html/deploy/live_version > /var/www/html/deploy/last_version

echo ${mp_live_ver} > /var/www/html/deploy/live_version

步驟6:從jenkins上下載最新的版本文件并自動(dòng)完成部署(web網(wǎng)頁(yè)部署)

#服務(wù)器/var/www/html下提供live_version(最新版本),lastest_version(上一版本)版本文件。提供packages/XXX_1.tar.gz文件

importrequests
fromurllibimportrequest
importhashlib
importos
importtarfile


defget_data(url):#負(fù)責(zé)將遠(yuǎn)端的文件打開(kāi)text的格式
r = requests.get(url) #下載當(dāng)?shù)氐刂?br/>returnr.text #返回文本格式


defdownload(url,fname):#下載文件,前面的download腳本
html = request.urlopen(url)#下載最新的tar
withopen(fname,'wb')asfobj:
       while True:
           data = html.read(1024)
           if notdata:
               break
fobj.write(data)


defcheck_md5(fname): #校驗(yàn)md5數(shù)值,求fname文件的md5數(shù)值
m = hashlib.md5()
   withopen(fname,'rb')asfobj:#打開(kāi)文件逐步讀取
while True:
           data = fobj.read(1024)
           if notdata:
               break
m.update(data) #將每次的md5數(shù)值更新
returnm.hexdigest()  #md5數(shù)值轉(zhuǎn)化成可讀的形式


defdeploy(app): #部署,先切到目錄,解壓tar,創(chuàng)建快捷方式
os.chdir('/var/www/packages')#cd到這個(gè)路徑下
tar = tarfile.open(app,'r:gz')#對(duì)app路徑的文件進(jìn)行解包
tar.extractall()
   tar.close()
   src = app.replace('.tar.gz',''#.tar.gz替換為''/var/www/html/packages
dst ='/var/www/html/mysite'#創(chuàng)建快捷方式的路徑
ifos.path.exists(dst): #創(chuàng)建的路徑是否已經(jīng)存在,若存在則刪除路徑后,再次創(chuàng)建
os.unlink(dst)
   os.symlink(src,dst) #創(chuàng)建快捷方式



if__name__ =='__main__':
   ver = get_data('http://192.168.122.59/deploy/live_version')#版本信息在/var/www/html/
app_name ='myproject_%s.tar.gz'%ver #壓縮包的文件名
app_url = 'http://192.168.122.59/packages/'+ app_name #壓縮包的網(wǎng)絡(luò)文件路徑
app_path = os.path.join('/var/www/packages',app_name)#完整的下載到本機(jī)路徑
download(app_url,app_path)#下載到本的
locals_md5 = check_md5(app_path)
   remote_md5 = get_data(app_url+'.md5').strip()#下載遠(yuǎn)程的md5文件,并將內(nèi)容后面的/n去掉
iflocals_md5 == remote_md5:
       deploy(app_path) #md5校驗(yàn)沒(méi)有問(wèn)題,則解壓這個(gè)版本的文件,并創(chuàng)建快捷方式


另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱(chēng):Jenkins中的一鍵部署與版本更新-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://chinadenli.net/article22/ccgsjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航靜態(tài)網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司商城網(wǎng)站軟件開(kāi)發(fā)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管