Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能。
通過Jenkins實現自動化部署項目,本地git提交代碼Jenkins自動化將項目部署在Linux服務器
Jenkins自動化部署實現原理
1、環境准備
Linux需要安裝JAVA,GIT,MAVEN.如果是war部署還需要TOMCAT
[root@zxone demo]# java -version java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode) [root@zxone demo]# git --version git version 2.28.0
[root@zxone ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/zhangsha/apache-maven-3.6.3
Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_261-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1127.18.2.el7.x86_64", arch: "amd64", family: "unix"
2、安裝Jenkins
2.1).下載安裝包jenkins.war;
2.2).在安裝包根路徑下,運行命令 java -jar jenkins.war --httpPort=8080,(linux環境、Windows環境都一樣);
2.3).打開瀏覽器進入鏈接 http://localhost:8080
.
2.4).填寫初始密碼,激活系統
2.5).這里建議選擇,推薦安裝的插件,保證基本常用的功能可以使用。
注意:可能各種原因,插件安裝失敗,則跳過也可以,再登錄到Jenkins之后可以對插件進行自定義選擇性安裝。
插件安裝界面
2.6).設置初始用戶和密碼
2.7).登錄賬號密碼之后,進入系統,安裝完成。(如果錄入賬號密碼登錄遇到空白頁,重啟jenkins服務在嘗試重新登錄)
3、Jenkins基本配置
3.1).插件配置(系統管理-插件管理)
在插件管理頁面可以對插件進行安裝、卸載、更新。(各個插件的版本和Jenkins版本有時候會有兼容性問題,可以進行更新或者降級)
需要安裝的插件:
•遠程連接服務插件(必須):Publish Over SSH
•發布插件(必須):Deploy to container Plugin
•Maven插件(必須): Maven Integration plugin
•git插件: Git plugin(git和svn根據自身需求)
•svn插件 :Subversion Plug-in (git和svn根據自身需求)
3.2).全局工具配置(系統管理-全局工具配置)
3.2.1-Maven配置
3.2.2-JDK和GIT配置
3.2.3-Maven配置
3.3).系統配置(系統管理-系統配置)
3.3.1-Jenkins主目錄(一般不用修改)
3.3.2-Publish over SSH插件配置
3、Jenkins構建任務
上述基本配置完成之后就可以開始構建任務。
3.1首頁-新建任務
錄入任務名稱,選擇“構建一個自由風格的軟件項目”。
創建完成出現任務列表
點擊名稱,進入任務工程的操作界面,可以對任務進行配置、刪除、構建操作。
3.2任務-配置(重點)
3.2.1-General 可以勾選“丟棄舊的構建”根據自身需求填寫即可。
3.2.2-源碼管理
Repository URL:gitlub或者gitee的代碼的git地址
Credentials:憑證(第一次需要添加賬號密碼)
3.2.3-構建觸發器
觸發器可以不勾選,每次手動進行構建即可。
3.2.4-構建環境
執行的sheel腳本start.sh參考如下:
如果jenkins執行shell腳本出現權限問題,修改jenkins的配置的用戶為root用戶。
#!/bin/bash echo "Stop Procedure : demo-0.0.1-SNAPSHOT.jar" APP_PATH=/home/www/jenkins-auto/demo pid=`ps -ef |grep java|grep demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'` echo 'old Procedure pid:'$pid if [ -n "$pid" ] then kill -9 $pid echo "kill end---" fi echo 'Start the program : demo-0.0.1-SNAPSHOT.jar' echo '-------Starting-------' export BUILD_ID=dontKillMe #注釋:防止:Jenkins啟動項目之后,之后殺死進程 配合 sleep 10s 使用 nohup java -jar $APP_PATH/demo-0.0.1-SNAPSHOT.jar > $APP_PATH/admin.log & 2>&1 & #注釋:admin.log 項目啟動日志
sleep 10s echo 'start success'
3.2.5-構建
3.3操作立即構建
配置完成之后,點擊立即構建
3.4構建完成
根據配置將代碼下載到:/var/lib/jenkins/workspace/demo
根據配置將jar移動到:/home/www/jenkins-auto/demo
以上即實現了Jenkins自動化部署的流程,通過git移交代碼之后,手動點擊 “立即構建”即可將最新代碼部署到服務器上。