這篇文章給大家介紹怎么在Jenkins中部署一個(gè)Spring Boot項(xiàng)目,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
為涉縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及涉縣網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、涉縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
jenkins搭建 部署分為三個(gè)步驟;
第一步,jenkins安裝
第二步,插件安裝和配置
第三步,Push SSH
第四步,部署項(xiàng)目
第一步 ,jenkins安裝
準(zhǔn)備環(huán)境:
JDK:1.8
Jenkins:2.83 Centos:7.3
maven 3.5‘
jdk默認(rèn)已經(jīng)安裝完成
配置maven
版本要求maven3.5.0
軟件下載
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
安裝
## 解壓 tar vxf apache-maven-3.5.0-bin.tar.gz ## 移動(dòng) mv apache-maven-3.5.0 /usr/local/maven3
修改環(huán)境變量, 在/etc/profile中添加以下幾行
MAVEN_HOME=/usr/local/maven3 export MAVEN_HOME export PATH=${PATH}:${MAVEN_HOME}/bin
記得執(zhí)行source /etc/profile
使環(huán)境變量生效。
驗(yàn)證 最后運(yùn)行mvn -v
驗(yàn)證maven是否安裝成功
配置防護(hù)墻
關(guān)閉防護(hù)墻
#centos7 systemctl stop firewalld.service ============================== #以下為:centOS 6.5關(guān)閉防火墻步驟 #關(guān)閉命令: service iptables stop #永久關(guān)閉防火墻: chkconfig iptables off
兩個(gè)命令同時(shí)運(yùn)行,運(yùn)行完成后查看防火墻關(guān)閉狀態(tài)
service iptables status
jenkins 安裝
下載
cd /opt wget http://mirrors.jenkins.io/war/2.83/jenkins.war
啟動(dòng)服務(wù)
java -jar jenkins.war &
Jenkins 就啟動(dòng)成功了!它的war包自帶Jetty服務(wù)器
第一次啟動(dòng)Jenkins時(shí),出于安全考慮,Jenkins會(huì)自動(dòng)生成一個(gè)隨機(jī)的按照口令。注意控制臺(tái)輸出的口令,復(fù)制下來,然后在瀏覽器輸入密碼:
INFO: ************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: 0cca37389e6540c08ce6e4c96f46da0f This may also be found at: /root/.jenkins/secrets/initialAdminPassword ************************************************************* ************************************************************* *************************************************************
訪問 瀏覽器訪問:http://localhost:8080/
輸入:0cca37389e6540c08ce6e4c96f46da0f
進(jìn)入用戶自定義插件界面,建議選擇安裝官方推薦插件,因?yàn)榘惭b后自己也得安裝:
接下來是進(jìn)入插件安裝進(jìn)度界面:
插件一次可能不會(huì)完全安裝成功,可以點(diǎn)擊Retry再次安裝。直到全部安裝成功
等待一段時(shí)間之后,插件安裝完成,配置用戶名密碼:
輸入:admin/admin
系統(tǒng)管理-》全局工具配置 jdk路徑,
第二步,插件安裝和配置
有很多插件都是選擇的默認(rèn)的安裝的,所以現(xiàn)在需要我們安裝的插件不多,Git plugin和Maven Integration plugin,publish over SSH、CVS插件管理SSH。
插件安裝:系統(tǒng)管理 > 插件管理 > 可選插件,勾選需要安裝的插件,點(diǎn)擊直接安裝或者下載重啟后安裝
配置全局變量
系統(tǒng)管理 > 全局工具配置
JDK
配置本地JDK的路徑,去掉勾選自動(dòng)安裝
Maven
配置本地maven的路徑,去掉勾選自動(dòng)安裝
其它內(nèi)容可以根據(jù)自己的情況選擇安裝。
配置 SSH免登陸
ssh的配置可使用密鑰,也可以使用密碼,這里我們使用密鑰來配置,在配置之前先配置好jenkins服務(wù)器和應(yīng)用服務(wù)器的密鑰認(rèn)證 jenkins服務(wù)器上生成密鑰對,使用ssh-keygen -t rsa
命令
輸入下面命令 一直回車,一個(gè)矩形圖形出現(xiàn)就說明成功,在~/.ssh/下會(huì)有私鑰id_rsa和公鑰id_rsa.pub
ssh-keygen -t rsa
將jenkins服務(wù)器的公鑰id_rsa.pub中的內(nèi)容復(fù)制到應(yīng)用服務(wù)器 的~/.ssh/下的 authorized_keys文件
ssh-copy-id -i id_rsa.pub 192.168.0.xx chmod 644 authorized_keys
在應(yīng)用服務(wù)器上重啟ssh服務(wù),service sshd restart現(xiàn)在jenkins服務(wù)器可免密碼直接登陸應(yīng)用服務(wù)器
之后在用ssh B嘗試能否免密登錄B服務(wù)器,如果還是提示需要輸入密碼,則有以下原因
a. 非root賬戶可能不支持ssh公鑰認(rèn)證(看服務(wù)器是否有限制)
b. 傳過來的公鑰文件權(quán)限不夠,可以給這個(gè)文件授權(quán)下 chmod 644 authorized_keys
c. 使用root賬戶執(zhí)行ssh-copy-id -i ~/.ssh/id_rsa.pub 這個(gè)指令的時(shí)候如果需要輸入密碼則要配置sshd_config
vi /etc/ssh/sshd_config #內(nèi)容 PermitRootLogin no
修改完后要重啟sshd服務(wù)
service sshd restart
最后,如果可以SSH IP 免密登錄成功說明SSH公鑰認(rèn)證成功。
第三步,Push SSH
系統(tǒng)管理 > 系統(tǒng)設(shè)置
選擇 Publish over SSH
Passphrase 不用設(shè)置 Path to key 寫上生成的ssh路徑:/root/.ssh/id_rsa
下面的SSH Servers是重點(diǎn)
Name 隨意起名代表這個(gè)服務(wù),待會(huì)要根據(jù)它來選則 Hostname 配置應(yīng)用服務(wù)器的地址 Username 配置linux登陸用戶名 Remote Directory 不填
點(diǎn)擊下方增加可以添加多個(gè)應(yīng)用服務(wù)器的地址
第四步,部署項(xiàng)目
首頁點(diǎn)擊新建:輸入項(xiàng)目名稱
下方選擇構(gòu)建一個(gè)maven項(xiàng)目,點(diǎn)擊確定。
勾選丟棄舊的構(gòu)建,選擇是否備份被替換的舊包。我這里選擇備份最近的10個(gè)
源碼管理,選擇svn,配置SVN相關(guān)信息,點(diǎn)擊add可以輸入svn的賬戶和密碼
svn地址:http://192.168.0.xx/svn/xxx@HEAD,@HEAD意思取最新版本
構(gòu)建環(huán)境中勾選“Add timestamps to the Console Output”,代碼構(gòu)建的過程中會(huì)將日志打印出來
在Build中輸入打包前的mvn命令,如:
clean install -Dmaven.test.skip=true -Ptest
意思是:排除測試的包內(nèi)容,使用后綴為test的配置文件。
Post Steps 選擇 Run only if build succeeds
點(diǎn)擊Add post-build step,選擇 Send files or execute commands over SSH
Name選擇上面配置的Push SSH
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 項(xiàng)目jar包名 Remove prefix:target/ Remote directory:Jenkins-in/ 代碼應(yīng)用服務(wù)器的目錄地址, Exec command:Jenkins-in/xxx.sh 應(yīng)用服務(wù)器對應(yīng)的腳本。
需要在應(yīng)用服務(wù)器創(chuàng)建文件夾:Jenkins-in,在文件夾中復(fù)制一下腳本內(nèi)容:xxx.sh
DATE=$(date +%Y%m%d) export JAVA_HOME PATH CLASSPATH JAVA_HOME=/usr/java/jdk1.8.0_131 PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH DIR=/root/xxx JARFILE=xxx-0.0.1-SNAPSHOT.jar if [ ! -d $DIR/backup ];then mkdir -p $DIR/backup fi cd $DIR ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9 mv $JARFILE backup/$JARFILE$DATE mv -f /root/Jenkins-in/$JARFILE . java -jar $JARFILE > out.log & if [ $? = 0 ];then sleep 30 tail -n 50 out.log fi cd backup/ ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
關(guān)于怎么在Jenkins中部署一個(gè)Spring Boot項(xiàng)目就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁標(biāo)題:怎么在Jenkins中部署一個(gè)SpringBoot項(xiàng)目
當(dāng)前URL:http://www.chinadenli.net/article32/jigdsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站、ChatGPT、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)