一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

教你如何用Jenkins自動(dòng)化部署項(xiàng)目(教程,從零到搭建完成)

 周偉資料室 2019-01-14

      最近在實(shí)習(xí)中接觸了jenkins這個(gè)東西,所以花點(diǎn)時(shí)間了解了下。它可以在代碼上傳倉庫(如github,gitee,gitlab)后,在jenkins(一個(gè)網(wǎng)站界面)中通過獲取代碼倉庫中最新代碼,進(jìn)行自動(dòng)化部署,而省去手動(dòng)打包、上傳服務(wù)器、部署這一系列步驟,非常方便。

       下面教程分為以下幾個(gè)部分:

一、在你的本地電腦或者linux服務(wù)器上下載安裝jenkins:

jenkins下載地址:https:///   下載網(wǎng)站的war包版本就好了

下載完后把它部署到你的tomcat上運(yùn)行:放到tomcat的webapps目錄下,啟動(dòng)tomcat(windows下雙擊startup.bat或者linux下運(yùn)行sh startup.sh),然后通過瀏覽器訪問,如我的電腦上訪問:localhost:8080/jenkins 。啟動(dòng)后的界面如下:

然后到提示的文件中把里面的文本復(fù)制出來填到管理員密碼中。

接著如果是在本地電腦跑,可能會(huì)出現(xiàn):該jenkins實(shí)例似乎已離線 提示,如果出現(xiàn),是因?yàn)楸镜豩ttps訪問不了的原因。在瀏覽器中另打開一個(gè)界面http://localhost:8080/pluginManager/advanced,把升級(jí)站點(diǎn)中的url中的https改為http,保存更新。然后關(guān)掉tomcat服務(wù)器重啟,就可以聯(lián)網(wǎng)了。

        接下來選擇安裝推薦的插件,這個(gè)需要一定的時(shí)間。最后額外推薦安裝兩個(gè)插件,在系統(tǒng)管理中可以安裝插件:

1、 Rebuilder

2、 Safe Restart

二、在linux服務(wù)器中安裝git, maven,創(chuàng)建一個(gè)jenkens目錄,配置git的公鑰到你的github上,這些步驟是使用jenkins的前提。

     安裝git的目的是在自動(dòng)化部署前實(shí)時(shí)從git遠(yuǎn)程倉庫中拉取最新的代碼。在linux(我用的是centos系統(tǒng))安裝git:

yum install git

     生成密鑰:

ssh-keygen -t rsa -C "youremail@abc.com"

    可以不設(shè)置密鑰密碼直接按三次回車。 把家目錄中生成的公鑰內(nèi)容復(fù)制到github或其他倉庫上。    

    安裝maven的目的是通過項(xiàng)目中的pom.xml文件自動(dòng)解決項(xiàng)目依賴問題,構(gòu)建項(xiàng)目。linux中通過wget+下載鏈接下載maven的zip包然后解壓即可。配置maven環(huán)境變量:

  1. vim /etc/profile
  2. //在這個(gè)文件末尾加上
  3. export MAVEN_HOME=/root/maven3.4.5
  4. export PATH=$MAVEN_HOME/bin:$PATH
  5. //保存后在命令行輸入,啟動(dòng)配置
  6. . /etc/profile

    創(chuàng)建jenkins目錄,用來存儲(chǔ)拉取下來的項(xiàng)目代碼等。

三、將Linux服務(wù)器注冊(cè)到Jenkins上

1、開啟服務(wù)器上的ssh服務(wù),可通過 netstat -anp | grep :22命令查看是否開啟

2、先來測(cè)試一下怎么在jenkins中操作遠(yuǎn)程服務(wù)器

在jenkins中選擇系統(tǒng)管理——》新建節(jié)點(diǎn)

其中遠(yuǎn)程工作目錄即你在Linux上創(chuàng)建的jenkins目錄。在Credentials添加一個(gè)遠(yuǎn)程用戶,輸入你的遠(yuǎn)程機(jī)器用戶名和密碼保存。

點(diǎn)擊TestEnv,啟動(dòng)代理。

在全局工具配置中配置git命令:

3、自動(dòng)化部署過程原理:

所以需要編寫一個(gè)shell腳本來執(zhí)行這個(gè)過程。

具體的創(chuàng)建Jenkins任務(wù)的過程為

1.創(chuàng)建jenkins任務(wù)

2.填寫Server信息

3.配置git參數(shù)

4.填寫構(gòu)建語句(shell腳本),實(shí)現(xiàn)自動(dòng)部署。

四、創(chuàng)建自動(dòng)化部署任務(wù)

1、編寫shell部署腳本deploy.sh,并放到linux服務(wù)器中的jenkins目錄下,在該目錄下通過touch deploy.sh創(chuàng)建一個(gè)腳本,把下面的腳本復(fù)制到里面即可(到時(shí)每次自動(dòng)部署都會(huì)執(zhí)行它),腳本中的my-scrum為我要自動(dòng)構(gòu)建的項(xiàng)目名:

  1. #!/usr/bin/env bash
  2. #編譯+部署項(xiàng)目站點(diǎn)
  3. #需要配置如下參數(shù)
  4. # 項(xiàng)目路徑, 在Execute Shell中配置項(xiàng)目路徑, pwd 就可以獲得該項(xiàng)目路徑
  5. # export PROJ_PATH=這個(gè)jenkins任務(wù)在部署機(jī)器上的路徑
  6. # 輸入你的環(huán)境上tomcat的全路徑
  7. # export TOMCAT_APP_PATH=tomcat在部署機(jī)器上的路徑
  8. ### base 函數(shù)
  9. killTomcat()
  10. {
  11. #pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
  12. #echo "tomcat Id list :$pid"
  13. #if [ "$pid" = "" ]
  14. #then
  15. # echo "no tomcat pid alive"
  16. #else
  17. # kill -9 $pid
  18. #fi
  19. #上面注釋的或者下面的
  20. cd $TOMCAT_APP_PATH/bin
  21. sh shutdown.sh
  22. }
  23. cd $PROJ_PATH/my-scrum
  24. mvn clean install
  25. # 停tomcat
  26. killTomcat
  27. # 刪除原有工程
  28. rm -rf $TOMCAT_APP_PATH/webapps/ROOT
  29. rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
  30. rm -f $TOMCAT_APP_PATH/webapps/my-scrum.war
  31. # 復(fù)制新的工程到tomcat上
  32. cp $PROJ_PATH/scrum/target/order.war $TOMCAT_APP_PATH/webapps/
  33. cd $TOMCAT_APP_PATH/webapps/
  34. mv my-scrum.war ROOT.war
  35. # 啟動(dòng)Tomcat
  36. cd $TOMCAT_APP_PATH/
  37. sh bin/startup.sh

2、在jenkins上點(diǎn)擊新建一個(gè)任務(wù),填好任務(wù)名,填寫運(yùn)行的節(jié)點(diǎn)(上文中新建節(jié)點(diǎn)時(shí)創(chuàng)建的):

3、點(diǎn)擊源碼管理,填寫github(或gitlab等)地址:

4、點(diǎn)擊add,選擇check out to a sub-directory ,添加源碼下載到j(luò)enkins目錄下的指定目錄(可以命名為你的項(xiàng)目名):


5、填寫構(gòu)建任務(wù)時(shí)的shell腳本,然后保存,點(diǎn)擊立即構(gòu)建完成自動(dòng)構(gòu)建。(這里有一個(gè)坑,一定要給tomcat下所有sh文件加上x權(quán)限才能啟動(dòng)tomcat成功,具體為在tomcat目錄上層執(zhí)行chmod a+x  -R tomcat目錄或者在tomcat的bin目錄下執(zhí)行chmod +x *.sh)

  1. #當(dāng)jenkins進(jìn)程結(jié)束后新開的tomcat進(jìn)程不被殺死
  2. BUILD_ID=DONTKILLME
  3. #加載變量
  4. . /etc/profile
  5. #配置運(yùn)行參數(shù)
  6. #PROJ_PATH為設(shè)置的jenkins目錄的執(zhí)行任務(wù)目錄
  7. export PROJ_PATH=`pwd`
  8. #配置tomcat所在目錄
  9. export TOMCAT_APP_PATH=/root/tomcats/tomcat-my-scrum
  10. #執(zhí)行寫好的自動(dòng)化部署腳本
  11. sh /root/jenkins/deploy.sh

6、自動(dòng)化構(gòu)建成功:

7、后續(xù)代碼如果有改動(dòng),只要push到github或者gitlab等上,在jenkins界面中再次執(zhí)行構(gòu)建任務(wù)就可以了,非常方便,自動(dòng)化部署,再也不用手動(dòng)上傳項(xiàng)目到服務(wù)器了。

五、解決一個(gè)tomcat關(guān)閉,所有tomcat都被關(guān)閉了的問題(如果你的jenkins也是安裝的服務(wù)器上的其中一個(gè)tomcat中,就可能被莫名殺掉)

       這是因?yàn)樗械膖omcat的關(guān)閉腳本(shutdown.sh或者說catalina.sh)都默認(rèn)監(jiān)聽的是8005端口。只要進(jìn)去tomcat目錄下的conf目錄下的server.xml文件中,將

  1. <Server port="8005" shutdown="SHUTDOWN">
  2. <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  3. <!-- Security listener. Documentation at /docs/config/listeners.html
  4. <Listener className="org.apache.catalina.security.SecurityListener" />
  5. -->

中的8005端口改為不同的端口,就不會(huì)一個(gè)tomcat關(guān)閉,所有的tomcat都被關(guān)閉了

六、以后可以在linux服務(wù)器中安裝多個(gè)tomcat,來部署不同的項(xiàng)目,分別使用不同的端口,如我喜歡用8081,8082,8083等端口來解決多個(gè)tomcat端口沖突問題(在tomcat的conf目錄下的server.xml中修改即可,默認(rèn)為8080)。然后可以用jenkins來管理這些tomcat的自動(dòng)化部署啦。

七、謝謝閱讀,歡迎交流!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品欧美激情在线观看| 99久免费精品视频在线观| 国产精品视频第一第二区| 中国少妇精品偷拍视频 | 欧美夫妻性生活一区二区| 午夜精品久久久99热连载| 亚洲一级在线免费观看| 99久久精品免费看国产高清| 老司机精品视频在线免费看| 国产又粗又猛又长又大| 九九热视频经典在线观看| 亚洲日本中文字幕视频在线观看 | 少妇淫真视频一区二区| 国产精品久久女同磨豆腐| 欧美激情视频一区二区三区| 中日韩免费一区二区三区| 加勒比日本欧美在线观看| 91日韩在线视频观看| 亚洲精品熟女国产多毛| 男人和女人草逼免费视频| 欧美午夜一级特黄大片| 国产又猛又大又长又粗| 午夜福利视频偷拍91| 亚洲中文字幕人妻系列| 人妻内射在线二区一区| 久草热视频这里只有精品| 中文字幕一区二区三区中文| 精品国产成人av一区二区三区| 亚洲国产一区精品一区二区三区色| 不卡一区二区在线视频| 伊人久久五月天综合网| 年轻女房东2中文字幕| 日韩国产精品激情一区| 人妻人妻人人妻人人澡| 国产精品久久久久久久久久久痴汉| 久久黄片免费播放大全| 日本熟妇五十一区二区三区| 亚洲国产日韩欧美三级| 精品欧美一区二区三久久| 色婷婷激情五月天丁香| 欧美不卡一区二区在线视频|