小弟在接上次安裝完jenkins后,現(xiàn)在本地部署應(yīng)用,又因?yàn)橐鐧C(jī)器部署,所以寫下這篇,以防踩坑。
一、安裝插件
在插件管理中安裝Publish Over SSH插件
如果打包是war包,在安裝Deploy to container插件
二、配置遠(yuǎn)程信息
在系統(tǒng)設(shè)置中,找到publish over ssh
在ssh server點(diǎn)擊新增
????????配置好遠(yuǎn)程服務(wù)器信息,點(diǎn)擊高級,勾選“Use password authentication, or use a different key”,輸入遠(yuǎn)程服務(wù)器的密碼。
其中,
????????Name是給sshserver自定義一個(gè)名稱
????????Hostname是ssh服務(wù)器的地址
????????Username是ssh服務(wù)器的用戶名
????????Remote Directory是需要上傳文件到服務(wù)器的遠(yuǎn)程目錄(與流水線中的文件目錄相配合
填寫基本信息完成后可以點(diǎn)擊下方的Test Configuration測試下是否連接正常,信息都正確后點(diǎn)擊應(yīng)用Apply,一個(gè)ssh服務(wù)器就配置好了)
二、配置項(xiàng)目流水線
在項(xiàng)目流水線中找到post steps
點(diǎn)擊add server,填寫相應(yīng)的配置。
我的流程是:
- 先 SSH 連接,刪除原進(jìn)程和文件
- 再 SSH 連接,發(fā)送文件
- 執(zhí)行 shell 命令
?所以第一步,先刪除原進(jìn)程和文件
stop.sh是停止原先的服務(wù)腳步,replace.sh是要?jiǎng)h除或者替換部署的jar包(腳本在文章末尾)
第二步,發(fā)送文件,執(zhí)行shell命令
點(diǎn)擊Add Transfer Set,進(jìn)行配置
其中,
- Source files 需要打包的文件,。這里的執(zhí)行路徑是“/root/.jenkins/workspace/項(xiàng)目名稱”下,在你用Maven命令打包完成后,會生成target文件夾,jar包就在里邊。所以,只需要填寫“target/*.jar”即可,也可以填寫jar包名稱“target/hunter-assets-1.0.1.jar”,因?yàn)樾〉苓@里是springboot多模塊工程,所以這里需要在加一層模塊名稱目錄“hunter-assets/target/hunter-assets-1.0.1.jar”
- Remove prefix 需要移除的目標(biāo)前綴。不需要把target文件夾也傳過去,所以把target文件夾移除掉即可,只發(fā)送jar包即可。
- Remote directory 文件上傳的遠(yuǎn)程服務(wù)器目錄,這里的目錄是之前遠(yuǎn)程服務(wù)器設(shè)置的Remote directory目錄的相對目錄(也就是說,小弟這里設(shè)置的目錄實(shí)際上等于之前服務(wù)器設(shè)置的目錄/opt/hunter加上這里設(shè)置的目錄/service/java,連起來就是/opt/hunter/service/java),所以說SSH處的目標(biāo)地址最好不要省略,配置根目錄“/”即可。
- Exec command 到達(dá)遠(yuǎn)程服務(wù)器后執(zhí)行的命令,也是我們執(zhí)行啟動(dòng)腳本的地方。
?然后,點(diǎn)擊保存,構(gòu)建流水線,查看是否構(gòu)建成功
基本就算完成了。
注意:
1、文件目錄一定賦予權(quán)限,否則傳輸文件不成功
2、啟動(dòng)服務(wù),一定要后臺啟動(dòng),否則構(gòu)建頁面一直在前端等待結(jié)果
deploy.sh(啟動(dòng)腳本):
#!/bin/bash
#export BUILD_ID=dontKillMe這一句很重要,這樣指定了,項(xiàng)目啟動(dòng)之后才不會被Jenkins殺掉。
export BUILD_ID=dontKillMe
nohup java -Dserver.port=8011 -jar /opt/hunter/service/java/hunter-assets-1.0.1.jar > jenkins.out 2>&1 &
echo '執(zhí)行完了構(gòu)建'
2>&1 可參考Linux下“ >/dev/null 2>&1 “相關(guān)知識說明_》/dev/null 2>&1-CSDN博客
大概意思就是,后臺執(zhí)行這個(gè)程序,并將錯(cuò)誤輸出2重定向到標(biāo)準(zhǔn)輸出1,然后將標(biāo)準(zhǔn)輸出1全部放到j(luò)enkins.out文件中
希望自己遇到的諸多困難,能帶給各位一點(diǎn)點(diǎn)小小的幫助,感謝。文章來源:http://www.zghlxwxcb.cn/news/detail-818468.html
附錄:腳本文件文章來源地址http://www.zghlxwxcb.cn/news/detail-818468.html
#!/bin/bash
#stop.sh
#找到正在運(yùn)行舊項(xiàng)目的 編號
#然后停止
pid=`ps -ef | grep hunter-assets | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
#!/bin/bash
#replate.sh
#判斷指定路徑下的jar包是否存在
#如果存在,更名備份
#將Jenkins打包編譯后的項(xiàng)目移動(dòng)到指定的項(xiàng)目目錄下
file="/opt/hunter/service/java/hunter-assets-1.0.1.jar"
if [ -f "$file" ]
then
#mv /opt/hunter/java/service/hunter-assets-1.0.1.jar /opt/hunter/java/service/hunter-assets-1.0.1.jar.`date +%Y%m%d%H%M%S`
rm -rf /opt/hunter/service/java/hunter-assets-1.0.1.jar
fi
echo '完成了刪除文件'
到了這里,關(guān)于jenkins遠(yuǎn)程部署springboot項(xiàng)目之二三事的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!