Jenkins Pipeline 部署 SpringBoot 應(yīng)用的教程詳解
一. 安裝依賴包
yum install -y wget yum install -y gcc-c++ yum install -y zlib-devel perl-ExtUtils-MakeMaker yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker yum install -y openssh-clients yum install -y fontconfig
二. 環(huán)境準(zhǔn)備
1.安裝JAVA環(huán)境
yum -y install java-1.8.0-openjdk #檢測是否安裝成功 java -version
修改/etc/profile文件,添加JAVA_HOME
vi /etc/profile 在文件的最后面,加上以下代碼 export JAVA_HOME=/java/jdk1.8.0_171 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
在執(zhí)行完保存過后,必須執(zhí)行以下source /etc/profile,重置文件,讓它生效。
2.安裝Maven
#下載 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz #解壓改名移動(dòng)目錄 tar zxf apache-maven-3.1.1-bin.tar.gz mv apache-maven-3.1.1 /usr/local/maven3
vi /etc/profile然后還需要 配置環(huán)境變量。 #在適當(dāng)?shù)奈恢锰砑?/p>
export M2_HOME=/usr/local/maven3 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
保存退出后運(yùn)行下面的命令使配置生效,或者重啟服務(wù)器生效。
source /etc/profile
驗(yàn)證版本
mvn -v
出現(xiàn)maven版本即成功
阿里云源
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
三. 安裝Jenkins部署SpringBoot應(yīng)用
rpm方式安裝:
sudo wget https://pkg.jenkins.io/redhat-stable/jenkins-2.164.1-1.1.noarch.rpm sudo rpm -ivh jenkins-2.164.1-1.1.noarch.rpm
#重載服務(wù)(由于前面修改了Jenkins啟動(dòng)腳本) sudo systemctl daemon-reload #啟動(dòng)Jenkins服務(wù) sudo systemctl start jenkins #將Jenkins服務(wù)設(shè)置為開機(jī)啟動(dòng) #由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令 sudo /sbin/chkconfig jenkins on
war包方式:
修改Jenkins默認(rèn)用戶:
vi /etc/sysconfig/jenkins #修改為Root用戶 JENKINS_USER="root" #給用戶授權(quán) sudo chown -R root /var/log/jenkins sudo chgrp -R root /var/log/jenkins sudo chown -R root /var/lib/jenkins sudo chgrp -R root /var/lib/jenkins sudo chown -R root /var/cache/jenkins sudo chgrp -R root /var/cache/jenkins
直接將War包上傳到服務(wù)器運(yùn)行即可。
nohup java -jar jenkins.war >jenkins.log 2>&1 &
運(yùn)行后訪問localhost:8080
即可。
進(jìn)入界面后需要輸入一串密碼在服務(wù)器查看即可:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
進(jìn)入之后創(chuàng)建好自己的用戶名與密碼,跳過所有下載。
登陸之后進(jìn)入Manage Jenkins -> Global Tool Configuration 中進(jìn)行配置Maven,Git,JDK
四. 新建Pipeline 項(xiàng)目
配置Git倉庫:
腳本路徑是指代碼拉下的jenkins_files目錄里面的01_eureka文件?!?/p>
node { def mvnHome def workspace = pwd() def project_name = 'eureka-server-1.0.0.jar' def project_log = 'eureka-server-1.0.0.log' def project_home = 'app-centre/eureka-server' def vm_ip = 'xxx.xxx.xxx.xxx' def vm_port = '22' def vm_user = 'root' //代碼獲取 stage('Preparation') { // for display purposes git branch: 'dev', url:'https://xxxxxxx.git' } //構(gòu)建 stage('Build') { // Run the maven build if (isUnix()) { sh "mvn -Dmaven.test.skip=true clean package" } else { bat(/mvn -Dmaven.test.skip=true clean package/) } } //移動(dòng) stage('MV') { sh "mv ${project_home}/target/${project_name} /usr/local/src/" } //上傳到服務(wù)器 stage('Upload VM') { sh "scp -P ${vm_port} /usr/local/src/${project_name} ${vm_user}@${vm_port}:/usr/local/src/bk" //sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >> ${project_log} '" } //運(yùn)行JAR包 stage('Run') { //sh "if (ps -ef| grep java|grep ${project_name})then (ps -ef| grep java|grep ${project_name}| awk '{print \$2}'|xargs kill -9) fi" sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >${project_log} 2>&1 &'" } }
腳本步驟為
1.Preparation 拉取代碼
2.Build 編譯打包
3.MV 移動(dòng)到指定目錄
4.Upload VM 上傳 jar包到虛擬機(jī)
5.Run 運(yùn)行遠(yuǎn)程服務(wù)器Jar包
注意事項(xiàng):
需要在腳本上直接將Jar上傳到服務(wù)器必須配置ssh公鑰私鑰,配置步驟為:
進(jìn)入服務(wù)器Root目錄
- 輸入命令:cd .ssh進(jìn)入rsa公鑰私鑰目錄(清空舊秘鑰)
- 在當(dāng)前目錄下執(zhí)行ssh-keygen -t rsa,三次回車后生成新的公鑰(id_rsa.pub)私鑰(id_rsa)文件(每個(gè)節(jié)點(diǎn)都要重新生成)
- 在主節(jié)點(diǎn)上執(zhí)行命令:cat id_rsa.pub >> authorized_keys把公鑰內(nèi)容拷貝到該文件中
- 登錄其它節(jié)點(diǎn),把其它節(jié)點(diǎn)的公鑰都拷貝到主節(jié)點(diǎn)的authorized_keys文件中(需要輸入密碼)
到此這篇關(guān)于Jenkins Pipeline 部署 SpringBoot 應(yīng)用的文章就介紹到這了,更多相關(guān)Jenkins Pipeline 部署 SpringBoot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Jenkins+Docker?一鍵自動(dòng)化部署?SpringBoot?項(xiàng)目的詳細(xì)步驟
- Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟
- 使用jenkins部署springboot項(xiàng)目的方法步驟
- springboot docker jenkins 自動(dòng)化部署并上傳鏡像的步驟詳解
- 詳解jenkins自動(dòng)部署springboot應(yīng)用的方法
- jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項(xiàng)目
- Jenkins自動(dòng)化部署Vue項(xiàng)目的方法實(shí)現(xiàn)
- 使用jenkins一鍵打包發(fā)布vue項(xiàng)目的實(shí)現(xiàn)
- jenkins自動(dòng)構(gòu)建發(fā)布vue項(xiàng)目的方法步驟
- 云服務(wù)器Jenkins部署Springboot項(xiàng)目及Vue項(xiàng)目的詳細(xì)過程
相關(guān)文章
Java郵件發(fā)送程序(可以同時(shí)發(fā)給多個(gè)地址、可以帶附件)
不錯(cuò)的功能比較齊全的郵件發(fā)送程序源碼2008-07-07Java 動(dòng)態(tài)數(shù)組的實(shí)現(xiàn)示例
Java動(dòng)態(tài)數(shù)組是一種可以任意伸縮數(shù)組長度的對(duì)象,本文主要介紹了Java 動(dòng)態(tài)數(shù)組的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Java那點(diǎn)事——StringBuffer與StringBuilder原理與區(qū)別
本文給大家分享StringBuffer與StringBuilder的區(qū)別,它們的應(yīng)用場景是什么?非常不錯(cuò),面試考官經(jīng)常考的一個(gè)問題,有需要的朋友跟著腳本之家小編一起學(xué)習(xí)吧2016-06-06WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例
這篇文章主要介紹了WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01java后臺(tái)實(shí)現(xiàn)js關(guān)閉本頁面,父頁面指定跳轉(zhuǎn)或刷新操作
這篇文章主要介紹了java后臺(tái)實(shí)現(xiàn)js關(guān)閉本頁面,父頁面指定跳轉(zhuǎn)或刷新操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(21)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07