1. 程式人生 > >使用Jenkins部署Spring Boot

使用Jenkins部署Spring Boot

jenkins是devops神器,本篇文章介紹如何安裝和使用jenkins部署Spring Boot專案

jenkins搭建 部署分為三個步驟;

  • 第一步,jenkins安裝
  • 第二步,外掛安裝和配置
  • 第三步,Push SSH
  • 第四步,部署專案

第一步 ,jenkins安裝

準備環境:

JDK:1.8
Jenkins:2.83
Centos:7.3
maven 3.5‘

jdk預設已經安裝完成
 

配置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
## 移動
mv apache-maven-3.5.0 /usr/local/maven3

修改環境變數,
在/etc/profile中新增以下幾行

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

記得執行source /etc/profile使環境變數生效。

驗證
最後執行mvn -v驗證maven是否安裝成功
 

配置防護牆

關閉防護牆

#centos7
systemctl stop firewalld.service
==============================
#以下為:centOS 6.5關閉防火牆步驟
#關閉命令:  
service iptables stop 
#永久關閉防火牆:
chkconfig iptables off

兩個命令同時執行,執行完成後檢視防火牆關閉狀態

service iptables status

jenkins 安裝

下載

cd /opt
wget http://mirrors.jenkins.io/war/2.83/jenkins.war

啟動服務

java -jar jenkins.war &

Jenkins 就啟動成功了!它的war包自帶Jetty伺服器

第一次啟動Jenkins時,出於安全考慮,Jenkins會自動生成一個隨機的按照口令。注意控制檯輸出的口令,複製下來,然後在瀏覽器輸入密碼:

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

進入使用者自定義外掛介面,建議選擇安裝官方推薦外掛,因為安裝後自己也得安裝:

接下來是進入外掛安裝進度介面:

外掛一次可能不會完全安裝成功,可以點選Retry再次安裝。直到全部安裝成功

等待一段時間之後,外掛安裝完成,配置使用者名稱密碼:

輸入:admin/admin

系統管理-》全域性工具配置 jdk路徑,

第二步,外掛安裝和配置

有很多外掛都是選擇的預設的安裝的,所以現在需要我們安裝的外掛不多,Git plugin和Maven Integration plugin,publish over SSH、SSH外掛。

外掛安裝:系統管理 > 外掛管理 > 可選外掛,勾選需要安裝的外掛,點選直接安裝或者下載重啟後安裝


 

配置全域性變數

系統管理 > 全域性工具配置

JDK

配置本地JDK的路徑,去掉勾選自動安裝

Maven

配置本地maven的路徑,去掉勾選自動安裝

其它內容可以根據自己的情況選擇安裝。
 

配置 SSH免登陸

ssh的配置可使用金鑰,也可以使用密碼,這裡我們使用金鑰來配置,在配置之前先配置好jenkins伺服器和應用伺服器的金鑰認證
jenkins伺服器上生成金鑰對,使用ssh-keygen -t rsa命令

輸入下面命令 一直回車,一個矩形圖形出現就說明成功,在~/.ssh/下會有私鑰id_rsa和公鑰id_rsa.pub

ssh-keygen -t rsa

將jenkins伺服器的公鑰id_rsa.pub中的內容複製到應用伺服器 的~/.ssh/下的 authorized_keys檔案

ssh-copy-id -i id_rsa.pub 192.168.0.xx
chmod 644 authorized_keys

在應用伺服器上重啟ssh服務,service sshd restart現在jenkins伺服器可免密碼直接登陸應用伺服器

之後在用ssh B嘗試能否免密登入B伺服器,如果還是提示需要輸入密碼,則有以下原因

  • a. 非root賬戶可能不支援ssh公鑰認證(看伺服器是否有限制)
  • b. 傳過來的公鑰檔案許可權不夠,可以給這個檔案授權下 chmod 644 authorized_keys
  • c. 使用root賬戶執行ssh-copy-id -i ~/.ssh/id_rsa.pub 這個指令的時候如果需要輸入密碼則要配置sshd_config
vi /etc/ssh/sshd_config
#內容
PermitRootLogin no

修改完後要重啟sshd服務

service sshd restart

最後,如果可以SSH IP 免密登入成功說明SSH公鑰認證成功。

第三步,Push SSH

系統管理 > 系統設定

選擇 Publish over SSH

Passphrase 不用設定
Path to key 寫上生成的ssh路徑:/root/.ssh/id_rsa

下面的SSH Servers是重點

Name 隨意起名代表這個服務,待會要根據它來選則
Hostname 配置應用伺服器的地址
Username 配置linux登陸使用者名稱
Remote Directory 不填

點選下方增加可以新增多個應用伺服器的地址
 

第四步,部署專案

首頁點選新建:輸入專案名稱

下方選擇構建一個maven專案,點選確定。

勾選丟棄舊的構建,選擇是否備份被替換的舊包。我這裡選擇備份最近的10個

原始碼管理,選擇svn,配置SVN相關資訊,點選add可以輸入svn的賬戶和密碼

構建環境中勾選“Add timestamps to the Console Output”,程式碼構建的過程中會將日誌打印出來

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

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

意思是:排除測試的包內容,使用字尾為test的配置檔案。

Post Steps 選擇 Run only if build succeeds

點選Add post-build step,選擇 Send files or execute commands over SSH

Name選擇上面配置的Push SSH

Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 專案jar包名
Remove prefix:target/
Remote directory:Jenkins-in/ 程式碼應用伺服器的目錄地址,
Exec command:Jenkins-in/xxx.sh 應用伺服器對應的指令碼。

需要在應用伺服器建立資料夾:Jenkins-in,在資料夾中複製一下指令碼內容: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舊專案,刪除舊專案,啟動新專案,備份老專案。

轉自:http://www.cnblogs.com/ityouknow/p/7899349.html

相關推薦

springboot(十六):使用Jenkins部署Spring Boot

記得 rmi 啟動 很多 文章 firewalld 情況 try 安裝 jenkins是devops神器,本篇文章介紹如何安裝和使用jenkins部署Spring Boot項目 jenkins搭建 部署分為三個步驟; 第一步,jenkins安裝 第二步,插件安裝和配置

windows系統Jenkins部署spring boot一直無返回結果問題解決辦法

前言 由於我們公司java應用是部署在windows伺服器上的,jenkins在部署spring boot時會一直等待直到超時才結束,這個主要原因是因為spring boot 啟動一直是在前臺執行(控制檯一直在列印),所以jenkins會認為這個任務沒有執行完

Spring Boot(十六):使用Jenkins部署Spring Boot

如何 war包 args 選擇 lib jetty dma light 訪問 Spring Boot(十六):使用Jenkins部署Spring Boot jenkins是devops神器,介紹如何安裝和使用jenkins部署Spring Boot項目 jenkins搭建

使用Jenkins部署Spring Boot

jenkins是devops神器,本篇文章介紹如何安裝和使用jenkins部署Spring Boot專案 jenkins搭建 部署分為三個步驟; 第一步,jenkins安裝 第二步,外掛安裝和配置 第三步,Push SSH 第四步,部署專案 第一步 ,jenki

(轉)Spring Boot(十六):使用 Jenkins 部署 Spring Boot

tails you 文件夾 設置 發布 awk jdk 時間 回車 http://www.ityouknow.com/springboot/2017/11/11/spring-boot-jenkins.html enkins 是 Devops 神器,本篇文章介紹如何安裝和

jenkins 部署 spring boot 至遠端服務指定目錄

安裝jenkins https://jenkins.io/zh/doc/ 配置外掛許可權 Manage Jenkins->C

jenkins 自動化部署 spring boot 專案(多圖)

前置條件 jenkins與部署專案所用伺服器為同一臺 將下載好的war包,放在tomcat的webapps目錄下,啟動tomcat 預設 8080 埠 wget http://mi

Jenkins+Docker自動化部署Spring boot專案 (二)搭建docker私庫Harbor

前言 docker映象的push、pull都需要映象庫。現在不少大廠提供免費的映象庫,如docker hub,163 hub,也可以自己搭建一個私有映象庫。我用了vmware公司開源的harbor作為docker私有庫,相比docker官方提供的私有庫regi

jenkins+gitlab+maven+docker自動化部署spring boot

   工作流程: 開發人員在gitLab上打了一個taggitLab把tag事件推送到JenkinsJenkins 獲取tag原始碼,編譯,打包,構建映象Jenkins 複製jar包到遠端伺服器Jenkins 執行遠端指令碼(停止老版本容器,刪除老版本容器,刪除老版本映象,b

Centos上搭建jenkins,並自動部署Spring Boot專案。(附遇到的問題及解決方案)

最近嘗試自己搭建jenkins自動部署環境,將整個過程及遇到的問題記下來,希望能夠幫助到一些朋友! 本文使用的環境是:Cent os7.2,maven3.5.3,JDK8,jenkins2.136 首先需要在你的伺服器上配好相關的JDK與maven,還要在系統上安裝好gi

linux測試環境,部署spring boot打的jar包,簡易偷懶腳本

head 新的 lena fin abs sta log linux nbsp 當前已有jar在運行,上傳新jar之後,需要刪除舊的,執行新的,一不小心可能就把新的刪了,就寫了個腳本,做下記錄 #!/bin/bash path=/work/server/ fileH

linux部署spring-boot

log kill lin spring clas body 直接 nbsp 名稱   先對項目maven clean 然後在項目上maven install 打成jar包,之後到linux上刪除前一個版本的進程   查看java進程的命令 ps -ef | grep ja

從零部署Spring boot項目到雲服務器(準備工作)

開始 frame bubuko ons pac 失敗 地址 進行 pri   自己的博客終於成功部署上線了,回過頭來總結記錄一下整個項目的部署過程! 測試地址:47.94.154.205:8084 註:文末有福利! 一、Linux下應用Shell通過SSH連接雲服務器

Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 開源軟件雲收

Spring Boot Dokcer 雲收藏 只需三步即可部署開源項目雲收藏,打造專屬個人的收藏系統,就是這麽簡單! 雲收藏項目已經開源2年多了,作為當初剛開始學習 Spring Boot 的練手項目,使用了很多當時很新的技術,現在看來其實很多新技術是沒有必要使用的,但做為學習案例來講確實是一個絕

liunx 部署 spring boot

txt ren href java包 remote linux 登錄 god warning Xshell for Xmanager Enterprise 4 (Build 0232)Copyright (c) 2002-2014 NetSarang Com

docker-compose, docker registry2,Python 指令碼 自動化 部署 spring boot 進銷存系統

準備環境 虛擬機器兩臺 centos 7.2 192.168.255.128 centos 7.2 192.168.255.129 maven 3.0.5 java 1.8.0_181 git version 1.8.3.1 Python 2.7.5 docker r

maven,git python指令碼 自動化 部署 spring boot進銷存系統

準備環境 虛擬機器兩臺 centos 7.2 192.168.255.128 centos 7.2 192.168.255.129 maven 3.0.5 java 1.8.0_181   git version 1.8.3.1 安裝 git yum in

開發筆記11 | 部署 Spring Boot 應用到阿里雲

今天晚上,聽了雲棲社群 Java 專家 徐雷frank 老師的《Java Spring Boot開發實戰系列課程》,受益匪淺,回頭就寫了一段程式,藉助阿里雲的外掛工具,順利部署到阿里雲上,分享給大家。 本地開發 無論是編寫雲端執行的,還是編寫本地執行的 Spring Boot 應用程式,程式碼編寫本身並沒

【docker】docker部署spring boot專案在伺服器上

IDE:idea 工具:docker spring boot:2.0.1 ======================================== 簡單記錄一下流程,以供參考: 第一步:首先得有一個spring boot的專案【集成了jpa+mybatis的spring boot 例子:ht

Jenkins 釋出spring boot專案 的 配置 (version: 2.138.2)

配置 一 此配置為 Jenkins在Centos7 上部署 General配置 原始碼管理 - svn地址 + 憑證 構建觸發器 (H/30 * * * * 代表 : 構建一次/30分鐘 ) 構建 + 釋出 ******* 重