使用Jenkins構建、部署spring boot項目


一、環境搭建

本次實驗的環境為Ubuntu 16.04,Jenkins 2.8.3

1、安裝ssh

sudo apt-get update  # 更新軟件源
sudo apt-get install openssh-server  # 安裝ssh
sudo ps -e |grep ssh ## 查詢是否啟動 ,如果沒有啟動 sudo service ssh start 啟動
使用gedit修改配置文件”/etc/ssh/sshd_config” 獲取遠程ROOT權限
打開”終端窗口”,輸入”sudo gedit /etc/ssh/sshd_config“
–>回車–>把配置文件中的”PermitRootLogin without-password“加一個”#”號,把它注釋掉
–>再增加一句”PermitRootLogin yes“
–>保存,修改成功

查看ip:

ifconfig

2、安裝vim

sudo apt-get install vim

3、本地使用ssh工具或者git bash遠程連接

ssh root@47.95.0.243 -p 22

  這里推薦一個不錯的ssh工具,基於Java開發,叫FinalShell,下載地址http://www.hostbuf.com/。自帶加速海外連接功能。

4、安裝jdk

sudo apt-get install openjdk-8-jdk
java -version # 查看是否安裝成功

openjdk的安裝目錄在 /usr/lib/jvm/java-8-openjdk-amd64

5、安裝maven

最新版本為3.6.0

wget http://apache.communilink.net/maven/maven-3/3.6.0/binaries/apache-maven-3.6.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 #此處根據你的maven安裝地址修改
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

執行source /etc/profile使環境變量生效

運行mvn -v驗證maven是否安裝成功

6、安裝git

sudo apt-get install git # 安裝git
git config --global user.name "zsh"
git config --global user.email "43240825@qq.com"

7、關閉防火牆

sudo ufw status # 查看防火牆狀態
sudo ufw disable  #關閉防火牆

active為開啟狀態。inactive為關閉狀態

8、安裝MySQL(非必需)

sudo apt-get update
sudo apt-get install mysql-server

在彈出的頁面中輸入兩次數據庫root用戶的密碼即可。

修復數據庫中文亂碼問題

修改/etc/mysql/my.cnf,加入下面這幾行

[mysqld]
character_set_server=utf8
[mysql]
default-character-set= utf8
[client]
default-character-set = utf8

重啟數據庫:

service mysql restart

查詢數據庫字符編碼

mysql -uroot -p
show variables like '%character%';

自此中文亂碼問題已經修復。

一般阿里雲或者騰訊雲買的服務器,Ubuntu 16.04 中自帶ssh和vim。

二、Jenkins 安裝

下載 https://pkg.jenkins.io/debian-stable/

sudo apt-get update
sudo apt-get install jenkins

或者離線下載之后,上傳至服務器,此處我放在了 /opt

啟動服務

默認啟動在8080
java -jar jenkins.war &
啟動在指定端口可以
nohup java -jar jenkins.war --httpPort=8080 &

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

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

因為項目是啟動在 ubuntu 系統里,所以我們在外面可以用服務器ip訪問

http://47.95.0.243:8080

此處注意,如果沒有給服務器防火牆打開8080端口,是沒法訪問的。

輸入上面的密碼

進入用戶自定義插件界面,建議選擇安裝官方推薦插件,因為安裝后自己也得安裝:

等待一段時間之后,插件安裝完成,如果有部分插件未安裝成功,不比擔心,繼續配置用戶名密碼:

三、Jenkins 配置

進入 系統管理 -> 全局工具配置

1、配置jdk

2、配置git

3、配置maven

四、部署項目

1、首頁點擊新建:輸入項目名稱

如果你沒有第二個選項,需要安裝 Maven Integration 插件

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

3、源碼管理,選擇git,配置Git相關信息

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

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

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

6、Post Steps 選擇 Run only if build succeeds

7、點擊Add post-build step,選擇 Excute Shell

cd /home/admin/Jenkins-in #根據自己stop.sh、replace.sh腳本地址寫
sh stop.sh
sh replace.sh
BUILD_ID=dontKillMe nohup java -jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar &
#根據自己jar包的名稱、地址修改

stop.sh

# 將應用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep personal-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi

#此處personal-0.0.1-SNAPSHOT.jar根據自己的jar包名稱修改

replace.sh

#replace.sh 用於將上次構建的結果備份,然后將新的構建結果移動到合適的位置
#!/bin/bash
# 先判斷文件是否存在,如果存在,則備份
file="/www/server/workspace/autumn-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
   mv /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
mv /root/.jenkins/workspace/hello/target/personal-0.0.1-SNAPSHOT.jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar

#此處 /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar根據自己實際jar包名稱和路徑修改

此處如果使用windows的notepad++寫好之后再上傳上去,有可能出現一個錯誤

stop.sh: Syntax error: end of file unexpected (expecting "then")

解決方案

在vim中修改下文件的格式就好了,直接輸入":",然后在":"之后輸入"set ff"如下圖所示

把格式改為unix,方法是輸入":set ff=unix",也可以輸入":set fileformat=unix"如下圖所示。

輸入完之后,回車即可完成切換格式。然后我們再輸入":set ff"來查看格式,如下圖所示,可以看到當前腳本格式變成了我們想要的"unix"了。

 此時就沒有問題了。

五、構建項目

左側有構建狀態,藍色表示成功,紅色表示失敗。

點進去可以查看本次構建信息,點擊左側的控制台日志。

訪問項目,成功!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM