教你如何用Jenkins自動化部署專案(教程,從零到搭建完成)
最近在實習中接觸了jenkins這個東西,所以花點時間瞭解了下。它可以在程式碼上傳倉庫(如github,gitee,gitlab)後,在jenkins(一個網站介面)中通過獲取程式碼倉庫中最新程式碼,進行自動化部署,而省去手動打包、上傳伺服器、部署這一系列步驟,非常方便。
下面教程分為以下幾個部分:
一、在你的本地電腦或者linux伺服器上下載安裝jenkins:
下載完後把它部署到你的tomcat上執行:放到tomcat的webapps目錄下,啟動tomcat(windows下雙擊startup.bat或者linux下執行sh startup.sh),然後通過瀏覽器訪問,如我的電腦上訪問:localhost:8080/jenkins 。啟動後的介面如下:
然後到提示的檔案中把裡面的文字複製出來填到管理員密碼中。
接著如果是在本地電腦跑,可能會出現:該jenkins例項似乎已離線 提示,如果出現,是因為本地https訪問不了的原因。在瀏覽器中另開啟一個介面http://localhost:8080/pluginManager/advanced,把升級站點中的url中的https改為http,儲存更新。然後關掉tomcat伺服器重啟,就可以聯網了。
接下來選擇安裝推薦的外掛,這個需要一定的時間。最後額外推薦安裝兩個外掛,在系統管理中可以安裝外掛:
1、 Rebuilder
2、 Safe Restart
二、在linux伺服器中安裝git, maven,建立一個jenkens目錄,配置git的公鑰到你的github上,這些步驟是使用jenkins的前提。
安裝git的目的是在自動化部署前實時從git遠端倉庫中拉取最新的程式碼。在linux(我用的是centos系統)安裝git:
yum install git
生成金鑰:
ssh-keygen -t rsa -C "[email protected]"
可以不設定金鑰密碼直接按三次回車。 把家目錄中生成的公鑰內容複製到github或其他倉庫上。
安裝maven的目的是通過專案中的pom.xml檔案自動解決專案依賴問題,構建專案。linux中通過wget+下載連結下載maven的zip包然後解壓即可。配置maven環境變數:
vim /etc/profile //在這個檔案末尾加上 export MAVEN_HOME=/root/maven3.4.5 export PATH=$MAVEN_HOME/bin:$PATH //儲存後在命令列輸入,啟動配置 . /etc/profile
建立jenkins目錄,用來儲存拉取下來的專案程式碼等。
三、將Linux伺服器註冊到Jenkins上
1、開啟伺服器上的ssh服務,可通過 netstat -anp | grep :22命令檢視是否開啟
2、先來測試一下怎麼在jenkins中操作遠端伺服器
在jenkins中選擇系統管理——》新建節點
其中遠端工作目錄即你在Linux上建立的jenkins目錄。在Credentials新增一個遠端使用者,輸入你的遠端機器使用者名稱和密碼儲存。
點選TestEnv,啟動代理。
在全域性工具配置中配置git命令:
3、自動化部署過程原理:
所以需要編寫一個shell指令碼來執行這個過程。
具體的建立Jenkins任務的過程為
1.建立jenkins任務
2.填寫Server資訊
3.配置git引數
4.填寫構建語句(shell指令碼),實現自動部署。
四、建立自動化部署任務
1、編寫shell部署指令碼deploy.sh,並放到linux伺服器中的jenkins目錄下,在該目錄下通過touch deploy.sh建立一個指令碼,把下面的指令碼複製到裡面即可(到時每次自動部署都會執行它),指令碼中的my-scrum為我要自動構建的專案名:
#!/usr/bin/env bash
#編譯+部署專案站點
#需要配置如下引數
# 專案路徑, 在Execute Shell中配置專案路徑, pwd 就可以獲得該專案路徑
# export PROJ_PATH=這個jenkins任務在部署機器上的路徑
# 輸入你的環境上tomcat的全路徑
# export TOMCAT_APP_PATH=tomcat在部署機器上的路徑
### base 函式
killTomcat()
{
#pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
#echo "tomcat Id list :$pid"
#if [ "$pid" = "" ]
#then
# echo "no tomcat pid alive"
#else
# kill -9 $pid
#fi
#上面註釋的或者下面的
cd $TOMCAT_APP_PATH/bin
sh shutdown.sh
}
cd $PROJ_PATH/my-scrum
mvn clean install
# 停tomcat
killTomcat
# 刪除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -f $TOMCAT_APP_PATH/webapps/my-scrum.war
# 複製新的工程到tomcat上
cp $PROJ_PATH/scrum/target/order.war $TOMCAT_APP_PATH/webapps/
cd $TOMCAT_APP_PATH/webapps/
mv my-scrum.war ROOT.war
# 啟動Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
2、在jenkins上點選新建一個任務,填好任務名,填寫執行的節點(上文中新建節點時建立的):
3、點選原始碼管理,填寫github(或gitlab等)地址:
4、點選add,選擇check out to a sub-directory ,新增原始碼下載到jenkins目錄下的指定目錄(可以命名為你的專案名):
5、填寫構建任務時的shell指令碼,然後儲存,點選立即構建完成自動構建。(這裡有一個坑,一定要給tomcat下所有sh檔案加上x許可權才能啟動tomcat成功,具體為在tomcat目錄上層執行chmod a+x -R tomcat目錄或者在tomcat的bin目錄下執行chmod +x *.sh)
#當jenkins程序結束後新開的tomcat程序不被殺死
BUILD_ID=DONTKILLME
#載入變數
. /etc/profile
#配置執行引數
#PROJ_PATH為設定的jenkins目錄的執行任務目錄
export PROJ_PATH=`pwd`
#配置tomcat所在目錄
export TOMCAT_APP_PATH=/root/tomcats/tomcat-my-scrum
#執行寫好的自動化部署指令碼
sh /root/jenkins/deploy.sh
6、自動化構建成功:
7、後續程式碼如果有改動,只要push到github或者gitlab等上,在jenkins介面中再次執行構建任務就可以了,非常方便,自動化部署,再也不用手動上傳專案到伺服器了。
五、解決一個tomcat關閉,所有tomcat都被關閉了的問題(如果你的jenkins也是安裝的伺服器上的其中一個tomcat中,就可能被莫名殺掉)
這是因為所有的tomcat的關閉指令碼(shutdown.sh或者說catalina.sh)都預設監聽的是8005埠。只要進去tomcat目錄下的conf目錄下的server.xml檔案中,將
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
中的8005埠改為不同的埠,就不會一個tomcat關閉,所有的tomcat都被關閉了
六、以後可以在linux伺服器中安裝多個tomcat,來部署不同的專案,分別使用不同的埠,如我喜歡用8081,8082,8083等埠來解決多個tomcat埠衝突問題(在tomcat的conf目錄下的server.xml中修改即可,預設為8080)。然後可以用jenkins來管理這些tomcat的自動化部署啦。
七、謝謝閱讀,歡迎交流!
相關推薦
教你如何用Jenkins自動化部署專案(教程,從零到搭建完成)
最近在實習中接觸了jenkins這個東西,所以花點時間瞭解了下。它可以在程式碼上傳倉庫(如github,gitee,gitlab)後,在jenkins(一個網站介面)中通過獲取程式碼倉庫中最新程式碼,進行自動化部署,而省去手動打包、上傳伺服器、部署這一系列步驟,非
手把手教你用npm發布一個包,詳細教程
文件夾 模塊 .com png keyword tor 速度慢 index bsp 我們已經實現了路由的自動化構建,但是我們可以看到,一大串代碼懟在裏面。當然你也可以說,把它封裝在一個JS文件裏面,然後使用require(‘./autoRoute.js‘)給引入進來,那也行
教你用 100 行 Node.js 程式碼,快速構建一個靜態網站生成器!
近日,我的一位同事向我尋求建議,她打算為自己構建一個部落格。於是,我對靜態網站生成器和部落格引擎進行了一番研究,發現 Hugo 是一個很不錯的選擇。但是,我的同事還有一些特殊要求,比如,她想要一個自定義的部落格網址和 CSS 主題。儘管這些 Hugo 都可以實現,但我並不打算花時間來學習它。我想自己
快回家過年了,還沒有找到物件嗎?教你用Python僅需三步,有老婆
快回家過年了,還沒有找到物件嗎?教你用Python僅需三步,找個老婆回家過年。怎麼做找小編。 看下文。小夥伴們加油,新的一年快快樂樂,開開心心,寫程式碼沒有BUG。 沒錯,這不是教你去爬幾張美照,而是很嚴肅認真正經的教你如何追女孩? 喜歡上一個女孩,怎麼追到手當老婆?身為程式設計師,只
手把手教你用SonarQube+Jenkins搭建--前端專案--程式碼質量管理平臺 (Window系統)
前言 網上教程大多介紹的是Linux系統下SonarQube+Jenkins如何使用,這是因為這兩款軟體一般都是部署在伺服器上,而大多數伺服器,採用的都是Linux系統。大多數伺服器用Linux的原因是: Linux伺服器上的許多軟體都是免費的,Window伺服器的軟體大多是付費的 基於Linux伺服器的解
Kindle 推送教程:教你用電子郵箱推送電子書
電子郵件 mail rec 實用 alt nal tom odi 批量 Kindle 推送是什麽意思?如何通過電子郵件附件推送?或許剛剛接觸 Kindle 的朋友對這個概念不是很清楚,其實所謂 Kindle 推送是指亞馬遜提供的一個“Kindle 個人文檔服務”,我們只需要
2018最新大神教你用Python玩轉數據視頻教程
data arr 學習者 ui組件 array 字符 玩轉 統計 afr 本課程共分為5個模塊(實際課時為8周):Module 01: Python基礎本模塊主要討論Python的基本語言結構、數據類型、基本運算、條件和循環、函數和模塊等內容,用它們就可以寫一些有用的程序了
手把手教你用Python實踐深度學習|深度學習視頻教程
視頻 ref ati pan 人工神經網絡 com 深度學習 encoder auto 手把手教你用Python實踐深度學習網盤地址:https://pan.baidu.com/s/1mkoC9ELXDglvTNN_xPUWlQ 提取碼: zgpy備用地址(騰訊微雲):ht
《阿里雲伺服器搭建》------實現Jenkins和github之間自動化部署專案
本系列教程的搭建環境為阿里雲伺服器,其他伺服器可作為參考。 本文主要講述實現Jenkins和github之間自動化部署專案 在瀏覽器中開啟我們的jenkins頁面。(http://ip:80/jenkins) 然後登陸管理員使用者。 為我們的專案建立一個job
十個例子,教你用統計學方法高效完成機器學習專案(下)【楚才國科】
五、資料準備: 資料一般不會直接拿來建模。為了改變資料的形狀或結構,使它更適用於選定的問題架構或學習演算法,需要對資料進行必要的轉化。 資料準備也會用到統計模型,例如: 1、縮放。例如標準化和規範化。 2、編碼。例如整數編碼和獨熱編碼。 3、變換。例如 Box-Cox
十個例子,教你用統計學方法高效完成機器學習專案(上)【楚才國科】
統計學和機器學習是兩個聯絡特別緊密的領域 事實上,這兩者的界限有時候非常模糊。然而有一些明顯屬於統計學領域的方法,不僅可用於機器學習的專案,並且極具價值。公平地說,需要統計學方法來有效地完成機器學習預測建模專案。 一、問題架構: 這包括了問題型別的選擇,例如是迴歸還是分類,也許
jenkins 自動化部署springboot專案
一、在你的本地電腦或者linux伺服器上下載安裝jenkins: 1. 首先去jenkins官網下載jenkins 包----> linux jenkins war包安裝 2. 執行 nohup java -jar jenkins.war>jenkins
配置專案構建完成後郵件通知---- Jenkins自動化部署學習筆記(四)
在之前的文章中,跟大家介紹了配置Jenkins程式, 使用Jenkins 進行自動化構建,構建成功後的檔案移動,這篇文章,我們來說說構建任務失敗怎麼郵件通知相關人員。 一、全域性郵件配置 在Jenkins 的主檢視下點選系統管理 -> 系統設定 ,在系統設定中找到
配置專案構建完成後檔案移動---- Jenkins自動化部署學習筆記(三)
在前兩篇文章中,跟大家分享了在 Windows 系統上安裝 Jenkins 和使用 Jenkins 進行 Android 專案的編譯打包;相信可能會有人疑問,打包完成之後,我需要將 apk 檔案放入指定位置怎麼辦。 其實,Jenkins 功能很強大,它可以配置在打包完成之後將
自動化構建Android專案 ---- Jenkins自動化部署學習筆記(二)
上篇文章跟大家分享了在Windows上安裝Jenkins的方法,這篇文章來跟大家分享一下利用Jenkins自動化構建Android專案: 一、所需準備: Android專案上傳至版本管理平臺,這裡我準備了Github上的Android專案https://github.co
Dubbo+Zookeeper架構—持續整合篇14—Jenkins自動化部署:Jenkins編譯一個Web專案並遠端釋出到Tomcat
上一章講了如何編譯我們第一個專案 但是有時候我們不僅僅只是編譯更多的是需要釋出 在微服務普及之前我們最常用的就無非就是通過tomcat執行war格式的專案了,本章將介紹如何配置一個傳統的Java web專案併發布到遠端tomcat上。 這裡需要用到的外掛為:Deploy t
Jenkins自動化部署教程
本教程講解springboot框架打包成jar包進行自動化部署; 外掛安裝 工具配置 系統管理 》 全域性工具配置(可以使用預設配置) 配置jdk 配置maven 配置git Publish over SSH配置 系統管理 》 系統設定,找到Publis
jenkins 自動化部署 spring boot 專案(多圖)
前置條件 jenkins與部署專案所用伺服器為同一臺 將下載好的war包,放在tomcat的webapps目錄下,啟動tomcat 預設 8080 埠 wget http://mi
教你用IDEA建立一個乾淨的web專案
教你用IDEA建立一個乾淨的web專案 1.開啟IDEA 2.點選Create New Project 3.點選Maven,勾上Create from archetype,選中字尾為webapp之後,點選Next。 4.填好之後點選Next。 5.直接點Next下一步 6.完成後點