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

1、環境搭建

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

一、安裝sshmysql

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:git

ifconfig

二、安裝vimsql

sudo apt-get install vim

三、本地使用ssh工具或者git bash遠程鏈接數據庫

ssh root@47.95.0.243 -p 22

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

四、安裝jdkubuntu

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

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

五、安裝mavenwindows

最新版本爲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是否安裝成功

六、安裝git

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

七、關閉防火牆

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

active爲開啓狀態。inactive爲關閉狀態

八、安裝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。

2、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端口,是無法訪問的。

輸入上面的密碼

進入用戶自定義插件界面,建議選擇安裝官方推薦插件,由於安裝後本身也得安裝:

等待一段時間以後,插件安裝完成,若是有部分插件未安裝成功,不比擔憂,繼續配置用戶名密碼:

3、Jenkins 配置

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

一、配置jdk

二、配置git

三、配置maven

4、部署項目

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

若是你沒有第二個選項,須要安裝 Maven Integration 插件

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

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

四、構建環境中勾選「Add timestamps to the Console Output」,代碼構建的過程當中會將日誌打印出來

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

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

六、Post Steps 選擇 Run only if build succeeds

七、點擊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"了。

 此時就沒有問題了。

5、構建項目

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

點進去能夠查看本次構建信息,點擊左側的控制檯日誌。

訪問項目,成功!

相關文章
相關標籤/搜索