您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Jenkins實現部署war包和部署jar包的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
默認情況下Tomcat是沒有配置用戶角色權限的
但是,后續Jenkins部署項目到Tomcat服務器,需要用到Tomcat的用戶,所以修改tomcat以下配置, 添加用戶及權限
vi /opt/tomcat/conf/tomcat-users.xml # 內容如下: <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
用戶和密碼都是:tomcat 注意:為了能夠剛才配置的用戶登錄到Tomcat,還需要修改以下配置
vi /opt/tomcat/webapps/manager/META-INF/context.xml <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> # 把上面這行注釋掉即可!
重啟Tomcat,訪問測試
輸入 tomcat tomcat
配置Tomcat憑證
編譯打包
遠程部署
項目選擇為Pipeline流水線項目
,
Pipeline,簡單來說,就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行于單個或者多個節點
的任務連接起來,實現單個任務難以完成的復雜流程編排和可視化的工作。
代碼:Pipeline以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯,審查和迭代其傳送流 程。 持久:無論是計劃內的還是計劃外的服務器重啟,Pipeline都是可恢復的。 可停止:Pipeline可接 收交互式輸入,以確定是否繼續執行Pipeline。 多功能:Pipeline支持現實世界中復雜的持續交付要 求。它支持fork/join、循環執行,并行執行任務的功能。 可擴展:Pipeline插件支持其DSL的自定義擴 展 ,以及與其他插件集成的多個選項。
Pipeline 腳本是由 Groovy 語言實現的,但是我們沒必要單獨去學習 Groovy
Pipeline 支持兩種語法:Declarative(聲明式)和 Scripted Pipeline(腳本式)語法
Pipeline 也有兩種創建方法:可以直接在 Jenkins 的 Web UI 界面中輸入腳本;也可以通過創建一 個 Jenkinsfile 腳本文件放入項目源碼庫中(一般我們都推薦在 Jenkins 中直接從源代碼控制(SCM) 中直接載入 Jenkinsfile Pipeline 這種方法)。
安裝Pipeline插件 Manage Jenkins->Manage Plugins->可選插件
安裝插件后,創建項目的時候多了“流水線”類型
配置git倉庫,點擊流水線語法
點擊生成流水線腳本
pipeline { agent any stages { stage('拉取代碼') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]]) } } stage('編譯構建') { steps { sh label: '', script: 'mvn clean package -Dmaven.test.skip=true' } } stage('構建完成') { steps { echo '構建完成' } } stage('遠程部署') { steps { deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war' } } } post { always { emailext( subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!', body: '${FILE,path="email.html"}', to: '1692312138@qq.com' ) } } }
點擊生成流水線腳本
stage('遠程部署') { steps { deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war' } }
完整腳本:
pipeline { agent any stages { stage('拉取代碼') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]]) } } stage('編譯構建') { steps { sh label: '', script: 'mvn clean package -Dmaven.test.skip=true' } } stage('構建完成') { steps { echo '構建完成' } } stage('遠程部署') { steps { deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war' } } } post { always { emailext( subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!', body: '${FILE,path="email.html"}', to: '1692312138@qq.com' ) } } }
安裝Pipeline Script from SCM插件
剛才我們都是直接在Jenkins的UI界面編寫Pipeline代碼,這樣不方便腳本維護,建議把Pipeline腳本放
在項目中(一起進行版本控制) 1)在項目根目錄建立Jenkinsfile文件,把內容復制到該文件中
2)在項目中引用該文件
點擊構建 查看控制臺輸出
流程 :
增加構建后操作步驟,然后配置ssh信息,編寫腳本,然后發包后執行腳本,停止進程,在啟動進程。
Publish Over SSH插件
然后配置ssh
配置工程 --》增加構建后操作步驟 選擇Sned build artifacts over SSH
Source files 項目構建后的目錄
Remove prefix 去前綴
Remote directoty 發布的目錄
Exec command 發布完執行的命令
先通過項目名查找正在運行的項目的端口號,如果存在,則殺死該進程,
然后再次重啟項目。
shell腳本:
#!/bin/env bash #PID=`ps -ef |grep 項目名稱 |grep -v grep | awk '{print $2}'` PID=`ps -ef |grep 'wxthepublic-1.0-SNAPSHOT.jar' |grep -v grep | awk '{print $2}'` if [ ! "$PID" ] then # 這里判斷TOMCAT進程是否存在 echo $PID"進程不存在" else echo "進程存在 殺死進程PID$PID" kill -9 $PID fi nohup java -jar 'wxthepublic-1.0-SNAPSHOT.jar' >/dev/null 2>log & #根據重啟后是否有當前應用判斷啟動是否成功 pid=$(ps -ef | grep java| grep 'wxthepublic-1.0-SNAPSHOT.jar'|awk -F '[ ]+' '{print $2}') echo $pid if [ -z $pid ] then echo "啟動失敗" exit 1 else echo 'wxthepublic-1.0-SNAPSHOT.jar' : $pid "啟動成功" fi
點擊立即構建,查看控制臺輸出
目錄下已經出現打過的jar包。
看完上述內容,你們對Jenkins實現部署war包和部署jar包的方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。