使用Jenkins部署springboot

Jenkins 是 Devops 神器,本篇文章介紹如何安裝和使用 Jenkins 部署 Spring Boot 項(xiàng)目

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_HOMEexport

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-jarjenkins.war &

Jenkins 就啟動(dòng)成功了蒿涎!它的war包自帶Jetty服務(wù)器

第一次啟動(dòng) Jenkins 時(shí)哀托,出于安全考慮,Jenkins 會(huì)自動(dòng)生成一個(gè)隨機(jī)的按照口令劳秋。注意控制臺(tái)輸出的口令萤捆,復(fù)制下來(lái),然后在瀏覽器輸入密碼:

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:0cca37389e6540c08ce6e4c96f46da0fThis may also be found at: /root/.jenkins/secrets/initialAdminPassword

***************************************************************************************************************************************************************************************

訪問(wèn) 瀏覽器訪問(wèn):http://localhost:8080/

輸入:0cca37389e6540c08ce6e4c96f46da0f

進(jìn)入用戶自定義插件界面俗批,建議選擇安裝官方推薦插件俗或,因?yàn)榘惭b后自己也得安裝:

接下來(lái)是進(jìn)入插件安裝進(jìn)度界面:

插件一次可能不會(huì)完全安裝成功,可以點(diǎn)擊Retry再次安裝岁忘。直到全部安裝成功

等待一段時(shí)間之后辛慰,插件安裝完成,配置用戶名密碼:

輸入:admin/admin

系統(tǒng)管理-》全局工具配置 jdk路徑干像,

第二步帅腌,插件安裝和配置

有很多插件都是選擇的默認(rèn)的安裝的,所以現(xiàn)在需要我們安裝的插件不多麻汰,Git plugin(使用svn的話下載subversion plug-in) 和 Maven Integration plugin速客,publish over SSH。

插件安裝:系統(tǒng)管理 > 插件管理 > 可選插件,勾選需要安裝的插件五鲫,點(diǎn)擊直接安裝或者下載重啟后安裝

配置全局變量

系統(tǒng)管理 > 全局工具配置

JDK

配置本地 JDK 的路徑溺职,去掉勾選自動(dòng)安裝

Maven

配置本地maven的路徑,去掉勾選自動(dòng)安裝

其它內(nèi)容可以根據(jù)自己的情況選擇安裝。

使用密鑰方式登錄目標(biāo)發(fā)布服務(wù)器

ssh 的配置可使用密鑰浪耘,也可以使用密碼乱灵,這里我們使用密鑰來(lái)配置,在配置之前先配置好jenkins服務(wù)器和應(yīng)用服務(wù)器的密鑰認(rèn)證?Jenkins服務(wù)器上生成密鑰對(duì)七冲,使用ssh-keygen -t rsa命令

輸入下面命令 一直回車痛倚,一個(gè)矩形圖形出現(xiàn)就說(shuō)明成功,在~/.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-iid_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. 傳過(guò)來(lái)的公鑰文件權(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 免密登錄成功說(shuō)明 SSH 公鑰認(rèn)證成功。

上面這種方式比較復(fù)雜通铲,其實(shí)在 Jenkins 后臺(tái)直接添加操作即可毕莱,參考下面方式

使用用戶名+密碼方式登錄目標(biāo)發(fā)布服務(wù)器

(1)點(diǎn)擊”高級(jí)”展開配置

(2)配置SSH的登陸密碼

配置完成后可點(diǎn)擊“Test Configuration”測(cè)試到目標(biāo)主機(jī)的連接,出現(xiàn)”success“則成功連接颅夺,如果有多臺(tái)應(yīng)用服務(wù)器朋截,可以點(diǎn)擊”增加“,配置多個(gè)“SSH Servers” 點(diǎ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ù)它來(lái)選擇

Hostname 配置應(yīng)用服務(wù)器的地址

Username 配置 linux 登陸用戶名

Remote Directory 不填

點(diǎn)擊下方增加可以添加多個(gè)應(yīng)用服務(wù)器的地址

第四步拗慨,部署項(xiàng)目

首頁(yè)點(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)建的過(guò)程中會(huì)將日志打印出來(lái)

在 Build 中輸入打包前的 mvn 命令其爵,如:

clean? install? -Dmaven.test.skip=true? ?-Ptest

意思是:排除測(cè)試的包內(nèi)容冒冬,使用后綴為 test 的配置文件(如果你的項(xiàng)目是單環(huán)境可以把-Ptest去掉)。

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ù)器對(duì)應(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

這段腳本的意思横侦,就是 kill 舊項(xiàng)目挥萌,刪除舊項(xiàng)目,啟動(dòng)新項(xiàng)目丈咐,備份老項(xiàng)目瑞眼。

全文完龙宏。

轉(zhuǎn)載:http://www.ityouknow.com/springboot/2017/11/11/spring-boot-jenkins.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棵逊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子银酗,更是在濱河造成了極大的恐慌辆影,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黍特,死亡現(xiàn)場(chǎng)離奇詭異蛙讥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)灭衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門次慢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人翔曲,你說(shuō)我怎么就攤上這事迫像。” “怎么了瞳遍?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵闻妓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我掠械,道長(zhǎng)由缆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任猾蒂,我火速辦了婚禮均唉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肚菠。我一直安慰自己浸卦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布案糙。 她就那樣靜靜地躺著限嫌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪时捌。 梳的紋絲不亂的頭發(fā)上怒医,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音奢讨,去河邊找鬼稚叹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扒袖。 我是一名探鬼主播塞茅,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼季率!你這毒婦竟也來(lái)了野瘦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤飒泻,失蹤者是張志新(化名)和其女友劉穎鞭光,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泞遗,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惰许,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了史辙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汹买。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖聊倔,靈堂內(nèi)的尸體忽然破棺而出晦毙,到底是詐尸還是另有隱情,我是刑警寧澤方库,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布结序,位于F島的核電站,受9級(jí)特大地震影響纵潦,放射性物質(zhì)發(fā)生泄漏徐鹤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一邀层、第九天 我趴在偏房一處隱蔽的房頂上張望返敬。 院中可真熱鬧,春花似錦寥院、人聲如沸劲赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凛澎。三九已至,卻和暖如春估蹄,著一層夾襖步出監(jiān)牢的瞬間塑煎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工臭蚁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留最铁,地道東北人讯赏。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像冷尉,于是被迫代替她去往敵國(guó)和親漱挎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360