關于CI,CD&CD
CI->Continuous Integration:持續集成
CD->Continuous Delivery:持續交付
CD->Continuous Deployment:持續部署
Jenkins

Jenkins是一款開源 CI&CD 軟體,用于自動化各種任務,包括構建、測驗和部署軟體,支持各種運行方式,可通過系統包、Docker 或者通過一個獨立的 Java 程式,
Jenkins部署方式
- 1.基于獨立應用程式部署[Jenkins]
- 2.基于傳統服務容器部署[Tomcat+Jenkins]
- 3.基于虛擬容器服務部署[Docker+Jenkins]
docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
??[注意事項]:經過實戰推薦在Docker部署Jenkins,相對于其它方式,運行穩定可靠,
-
SSH Server配置

-
服務端[Server]程式部署配置:

#!/bin/bash
#當jenkins行程結束后新開的tomcat行程不被殺死
BUILD_ID=DONTKILLME
#加載變數
. /etc/profile
#配置Jenkins作業空間[JENKINS_WORKSPACE]
export JENKINS_WORKSPACE=/var/jenkins_home/workspace/shaker-base-service-center-test
#進入Jenkins作業空間
cd $JENKINS_WORKSPACE
#授權配置Jenkins作業空間[chmod -R 777 JENKINS_WORKSPACE]
chmod -R 777 $JENKINS_WORKSPACE
#執行Maven構建專案
mvn clean install -U -P test


#!/bin/bash
#當jenkins行程結束后新開的tomcat行程不被殺死
BUILD_ID=DONTKILLME
#加載變數
. /etc/profile
#配置運行引數
#配置目標服務主機Jenkins作業空間[jenkins打包上傳的root目錄]
export JENKINS_WORKSPACE=/home/shaker_media/test
#配置tomcat所在目錄
export TOMCAT_APP_PATH=/home/shaker_test/base-center
chmod -R 777 $JENKINS_WORKSPACE
### base 函式
killTomcat()
{
pid=`ps -ef | grep -w "base-service-center" | grep -v 'grep\|tail\|less\|more'| awk '{print $2}'`
echo "pid=" $pid
if [ "$pid" != "" ] ; then
kill -9 $pid
rm -f /opt/testtomcat/pid
else
rm -f /opt/testtomcat/pid
fi
}
# 停止tomcat
killTomcat
# 洗掉原有工程
rm -f $TOMCAT_APP_PATH/base-service-center.jar
# 復制新的工程到tomcat上
cp $JENKINS_WORKSPACE/base-service-center.jar $TOMCAT_APP_PATH/
# 啟動Tomcat
cd $TOMCAT_APP_PATH
nohup java -jar -Ddubbo.protocol.port=58080 -Xms512m -Xmx512m -Xmn256m base-service-center.jar --port=28080 >logs/base-service-center.log 2>&1 &
- 后臺Web頁面[Client]部署:

#!/bin/bash
#當jenkins行程結束后新開的tomcat行程不被殺死
BUILD_ID=DONTKILLME
#加載變數
. /etc/profile
#配置Jenkins作業空間[JENKINS_WORKSPACE]
export JENKINS_WORKSPACE=/var/jenkins_home/workspace/shaker-mobile-web-perview
#進入Jenkins作業空間
cd $JENKINS_WORKSPACE
#授權配置Jenkins作業空間[chmod -R 777 JENKINS_WORKSPACE]
chmod -R 777 $JENKINS_WORKSPACE
#執行Maven構建專案
mvn clean install -U -P test

#!/bin/bash
#當jenkins行程結束后新開的tomcat行程不被殺死
BUILD_ID=DONTKILLME
#加載變數
. /etc/profile
#配置運行引數
#配置tomcat所在目錄
export TOMCAT_APP_PATH=/home/shaker_media/mobile-web
#配置目標服務主機Jenkins作業空間
export JENKINS_WORKSPACE=/home/shaker_media/preview
chmod -R 777 $JENKINS_WORKSPACE
#定義目標環境變數
export ENV_TARGET=mobile-web-preview
### base 函式
killTomcat()
{
pid=`ps -ef | grep -w "$ENV_TARGET" | grep -v 'grep\|tail\|less\|more'| awk '{print $2}'`
echo "pid=" $pid
if [ "$pid" != "" ] ; then
kill -9 $pid
rm -f /opt/testtomcat/pid
else
rm -f /opt/testtomcat/pid
fi
}
# 停tomcat
killTomcat
# 洗掉原有工程
rm -f $TOMCAT_APP_PATH/$ENV_TARGET.jar
# 復制新的工程到tomcat上
cp $JENKINS_WORKSPACE/mobile-web.jar $TOMCAT_APP_PATH/
# 啟動Tomcat
cd $TOMCAT_APP_PATH
#修改專案目標名稱
cp mobile-web.jar $ENV_TARGET.jar
#啟動專案部署
nohup java -jar -verbose:gc -Xms512m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m $ENV_TARGET.jar --port=8009 >logs/$ENV_TARGET.log 2>&1 &
# 洗掉原始工程
rm -f $TOMCAT_APP_PATH/mobile-web.jar
- 前端頁面[Html]部署:
- 視圖通用配置:

2.Source Code Management

3.Build構建

#!/bin/bash
#當jenkins行程結束后新開的tomcat行程不被殺死
BUILD_ID=DONTKILLME
#加載變數
. /etc/profile
#配置運行引數
export JENKINS_WORKSPACE=/var/lib/jenkins/workspace/shaker-manager-ui-test
cd $JENKINS_WORKSPACE
#git remote set-url origin [email protected]:tvplazaOne/2019WORK.git
#git pull origin dev
# 洗掉壓縮包
if [ ! -d "tar" ];then
mkdir ../tar
fi
rm -rf shaker-manager-ui-test.tar.gz
rm -rf ../tar/shaker-manager-ui-test.tar.gz
# 壓縮
tar -zcvf ../tar/shaker-manager-ui-test.tar.gz ../shaker-manager-ui-test
cp ../tar/shaker-manager-ui-test.tar.gz ../shaker-manager-ui-test
4.部署

#配置運行引數
#配置目標服務主機Jenkins作業空間[jenkins打包上傳的root目錄]
export JENKINS_WORKSPACE=/home/shaker_media/test
#配置tomcat所在目錄
export TOMCAT_APP_PATH=/home/shaker_test
#配置全域Target名稱
export TARGET_NAME=shaker-manager-ui-test
cd $JENKINS_WORKSPACE
#復制檔案到目標檔案夾
cp $TARGET_NAME.tar.gz $TOMCAT_APP_PATH
#進入目標檔案夾[$TOMCAT_APP_PATH]
cd $TOMCAT_APP_PATH
#解壓檔案
tar -zvxf $TARGET_NAME.tar.gz
#洗掉目標歷史檔案
rm -rf manager
#創建檔案夾[manager]
mkdir manager
# 授權chmod -R 777 manager
chmod -R 777 manager
#更改檔案夾名稱
mv $TARGET_NAME/* manager
#洗掉檔案TARGET_NAME
rm -rf $TARGET_NAME
著作權宣告:本文為博主原創文章,遵循相關著作權協議,如若轉載或者分享請附上原文出處鏈接和鏈接來源,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/1037.html
標籤:架構設計
上一篇:OA辦公系統 Springboot vue.js 前后分離 跨域 Flowable 作業流
下一篇:RabbitMQ入門指南
