jenkins自動化部署微服務與tomcat項目


1:利用好工具確實能事半功倍,最重要的是減少重復勞動。

jenkins的安裝就不再重復提取說明了,網上安裝步驟太多了。

(1)下面來記錄下部署微服務項目的步驟:

 

 

 

 腳本:demo.sh

 

#!/bin/bash

#pring cloud工程自動關閉
#(如果不加這個變量,任務執行成功之后Spring Cloud工程會自動停止)
BUILD_ID=demo

#先刪除之前啟動的進程
echo "kill demo... start"

#根據自己的工程的jar包查找進程
#PROCESS="$(ps -ef|grep demox|grep -v grep|awk '{print $2}')"
PROCESS="$(ps -ef | grep -E 'demo-eureka|demo-api|demo-system|demo-sso|demo-user|demo-web' | grep -v grep | awk '{print$2}' )"
if [[ -n $PROCESS ]];
then 
  echo "demo running... start kill..."
  kill -9 $PROCESS
else
  echo "demo not running"
fi

echo "kill demo... end"
#為了方便啟動,將打好的jar包復制到同一個目錄下
JAR_PATH="/home/zzjs/app/demo/bin"

echo "copy jars to $JAR_PATH... start"
#從Git上下載的源碼的放到任務的工作空間中
WORKSPACE="/root/.jenkins/workspace/demo"
API="demo-api"
EUREKA="demo-eureka"
SSO="demo-sso"
SYSTEM="demo-system"
USER="demo-user"
WEB="demo-web"

TARGET_PATH="target"

#根據自己的Spring Cloud工程中打包的jar包名稱匹配
#(也可以直接寫死jar包的名稱,比如這里我打好jar包的名稱就是module的名稱,如demo-eureka.jar)
cd $WORKSPACE/$API/$TARGET_PATH
#AUTH_JAR=$(ls |grep $BASE.jar)
echo "copy $API.jar"
cp -b $API-1.0-SNAPSHOT.jar $JAR_PATH/$API.jar

cd $WORKSPACE/$EUREKA/$TARGET_PATH
#EUREKA_JAR=$(ls |grep $EUREKA.jar)
echo "copy $EUREKA.jar"
cp -b $EUREKA-1.0-SNAPSHOT.jar $JAR_PATH/$EUREKA.jar

cd $WORKSPACE/$SSO/$TARGET_PATH
#ZUUL_JAR=$(ls |grep $ZUUL.jar)
echo "copy $SSO.jar"
cp -b $SSO-1.0-SNAPSHOT.jar $JAR_PATH/$SSO.jar

cd $WORKSPACE/$SYSTEM/$TARGET_PATH
#ZUUL_JAR=$(ls |grep $ZUUL.jar)
echo "copy $SYSTEM.jar"
cp -b $SYSTEM-1.0-SNAPSHOT.jar $JAR_PATH/$SYSTEM.jar

cd $WORKSPACE/$USER/$TARGET_PATH
#ZUUL_JAR=$(ls |grep $ZUUL.jar)
echo "copy $USER.jar"
cp -b $USER-1.0-SNAPSHOT.jar $JAR_PATH/$USER.jar

cd $WORKSPACE/$WEB/$TARGET_PATH
#ZUUL_JAR=$(ls |grep $ZUUL.jar)
echo "copy $WEB.jar"
cp -b $WEB-1.0-SNAPSHOT.jar $JAR_PATH/$WEB.jar

echo "copy jars to $JAR_PATH... end"

#啟動工程
echo "start demo..."

#需要按照eureka/auth/zuul的順序啟動,這里采用sleep的方式等待前一個jar包啟動完畢
#(這樣做是有點問題的,無法保證前一個jar包成功啟動,不過我沒有找到其他方式,暫時先這樣處理)
cd $JAR_PATH

nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $EUREKA.jar > eureka.out 2>&1 &

echo "waiting for eureka start..."

#sleep 15

echo "waiting for api start..."
nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $API.jar > api.out 2>&1 &

#sleep 15

echo "waiting for sso start..."
nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $SSO.jar > sso.out 2>&1 &

#sleep 15

echo "waiting for system start..."
nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $SYSTEM.jar > system.out 2>&1 &

#sleep 15

echo "waiting for user start..."
nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $USER.jar > user.out 2>&1 &

#sleep 15

echo "waiting for web start..."
nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $WEB.jar > web.out 2>&1 &

echo "start demo... end"

2:單個項目打成war 部署到服務器(linux)tomcat中

此次利用tomcat熱部署進行:

安裝tomcat 然后在tomcat config下tomcat-users.xml  在倒數第二行 寫入:

<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/><user name="admin" password="admin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

其中 :

<user name="admin" password="admin" 為用戶名和密碼,訪問tomcat用
然后在jenkins憑據中添加 tomcat用戶名和密碼;
之前的步驟同上,下面進行tomcat熱部署設置

 

 

 
        

 

這樣就打包完成自動發布到tomcat中了,至此結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM