Linux上GitLab+Jenkins實現Vue、Spring Cloud項目的自動部署


一、 相關插件安裝

1.安裝GitLab相關插件

2.NodeJS插件

3.Maven 插件

4.手動安裝插件

網絡或者其他原因,可能導致插件安裝失敗。

可以采用手動安裝的方式。

  • 手動下載jenkins插件:jenkins插件下載地址:http://mirror.xmission.com/jenkins/plugins/ ,一般下載下來后綴為hpi,如下載下來是zip的,記得把后綴修改為hpi

  • 打開jenkins,點擊 系統管理——>插件管理——>高級,選擇本地文件,點擊提交。

二、Jenkins相關配置

1.全局工具配置

系統管理-->全局工具配置:

將服務器安裝的Git、Maven以及Node 起一個名字進行配置。(也可用Jenkins帶的“自動安裝”,不過網絡差的話可能很慢)。

2.系統配置,設置 GitLab

系統管理-->系統設置,找到GitLab,填寫上名稱與GitLab並寫上主機地址,點擊【添加】來添加證書。

這里我們選擇添加 GitLab API token

登陸GitLab

點擊右上角頭像-->設置-->訪問令牌

輸入令牌名稱,然后勾選api,點擊下方 創建個人訪問令牌,復制token,並保存下來。因為下次就不可見了。然后在Jenkins中粘貼

三、創建vue前端任務

1.創建任務

輸入任務名稱,點選“構建一個自由風格的軟件項目”,點擊確定。

2.general

這里描述就隨便寫寫,丟棄舊的構建可以選上,節省空間。

3.源碼管理

選擇"Git",將項目git連接復制,並點擊【添加】添加git用戶名/密碼;

輸入指定分支。

4.構建觸發器

這里我們點選,當GitLab提交觸發,點擊下面的【高級】

拉到下面創建一個token

創建完成后,進入GitLab上的前端項目,點擊【設置】-->【集成】

將 上面Build when a change is pushed to GitLab. GitLab webhook URL: 后面跟的項目鏈接 與 剛剛 生成的token輸入,點擊【Add webhook】

添加成功后,可以點選測試,Push events 如果彈出 200 說明測試通過。

5.構建環境

構建環境選擇node,然后NodeJS Installation 這里下拉選擇上面在全局系統配置中設置的node

6.構建

構建這里,我們選擇shell腳本。

npm -v
cnpm install    					// 下載 node moudles
node build/build.js    				//構建
tar -zcvf dist.tar.gz ./dist  		//將生成的dist 打成壓縮包

mv ./dist.tar.gz /var/www/vue;		//移動到Nginx配置的項目目錄下面
 
cd /var/www/vue;					
rm -fr ./static			
tar -zxvf ./dist.tar.gz ./;			//解壓 剛才打的dist壓縮包	
mv ./dist/* ./						//刪除
rm -fr ./dist
rm -fr ./dist.tar.gz;

然后點擊保存,就可以了。

四、創建Sping Cloud 任務

創建Spring Cloud 跟創建 Vue前端任務類似,只是構建環境可以不選,然后更改構建中的shell。

首先為每一個服務創建一個通用的腳本,模板如下:

#spring boot Jar包目錄
APP_NAME=/root/app/springBoot/robotcenter.jar
#使用說明,用來提示輸入參數
usage() {
    echo "Usage: sh robotcenter.sh [start|stop|restart|status]"
    exit 1
}
 
#檢查程序是否在運行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#啟動方法
start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo "${APP_NAME} is already running. pid=${pid}"
  else
  	#這個dontKillMe 是一定要加的,不然jenkins會殺死這個進程,導致服務退出
  	BUILD_ID=dontKillMe
  	#將日志輸出到robotcenter.out,自己命名
    nohup java -jar ${APP_NAME}  >robotcenter.out 2>&1 &
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}
 
#輸出運行狀態
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重啟
restart(){
  stop
  sleep 5
  start
}
 
#根據輸入參數,選擇執行對應方法,不輸入則執行使用說明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

然后編寫構建shell腳本

#首先關閉所有的服務
sh /home/shell/eureka.sh stop 
sh /home/shell/zuul.sh stop
sh /home/shell/web.sh stop
#進入jenkins的工作空間 對應的Spring Cloud項目地址
cd /var/lib/jenkins/workspace/Project/
# clean install 清除之前的包,並將所有模塊 打包
mvn clean 
mvn install
# 進入每個需要部署服務的target目錄,將jar包移動到指定目錄
cd /var/lib/jenkins/workspace/Project/Project-server-eureka/
cd target/
mv Project-server-eureka-0.0.1-SNAPSHOT.jar /home/Project/
cd /var/lib/jenkins/workspace/Project/Project-server-zuul/
cd target/
mv Project-server-zuul-0.0.1-SNAPSHOT.jar /home/Project/
cd /var/lib/jenkins/workspace/Project/Project-server-web/
cd target/
mv Project-server-web-0.0.1-SNAPSHOT.jar /home/Project/
#啟動每個服務的啟動腳本
sh /home/shell/eureka.sh start
sh /home/shell/zuul.sh start
sh /home/shell/web.sh start


免責聲明!

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



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