Linux系統環境基於Docker搭建Jenkins實戰

關於CI,CD&CD

CI->Continuous Integration:持續集成

CD->Continuous Delivery:持續交付

CD->Continuous Deployment:持續部署

Jenkins

Jawvb6.png

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配置
    JdZQQs.png

  • 服務端[Server]程序部署配置:
    Jav51U.png

#!/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

Jazow9.png
JdpmjO.png

#!/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]部署:
    JdQHDH.png
#!/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

Jdl1aR.png

#!/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]部署:
  1. 視圖通用配置:
    JdCpTJ.png

2.Source Code Management
JdPtv6.png

3.Build構建
JdPxIJ.png

#!/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.部署
JdiqfA.png

#配置運行參數
#配置目標服務主機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

版權聲明:本文爲博主原創文章,遵循相關版權協議,如若轉載或者分享請附上原文出處鏈接和鏈接來源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章