Shell腳本自動部署Springboot項目


一、 介紹

前面介紹的項目部署是手動部署,也就是部署過程中的每一步操作都需要我們手動操作。接下來,我們需要再講解一下項目的自動部署,從而來簡化項目部署的操作,那么我們先來整體上了解一下項目自動部署的流程及操作步驟。

image

操作步驟如下:

1). 在Gitee上創建遠程倉庫,並將本地的項目代碼推送到遠程倉庫中

2). 在Linux中安裝Git,克隆代碼

3). 在Linux中安裝maven

4). 編寫Shell腳本(拉取代碼、編譯、打包、啟動)

5). 為用戶授予執行Shell腳本的權限

6). 執行Shell腳本

二、Centos 7 軟件安裝

2.1 Git軟件安裝

通過yum命令在線安裝git,執行如下指令:

yum list git            列出git安裝包
yum install git            在線安裝git

通過上述指令,安裝好git之后,我們就可以通過 git --version去驗證git的環境。

2). Git克隆代碼

cd /usr/local/
git clone git地址

2.2 Maven安裝

由於我們的工程是maven工程,我們要想進行項目的編譯打包,需要用到maven的指令,所以需要安裝maven。具體操作步驟如下:

1). 上傳maven的安裝包

2). 解壓maven安裝包到/usr/local目錄

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

3). 在/etc/profile配置文件中配置環境變量

vim /etc/profile

修改配置文件,進入到命令模式,按G切換到最后一行,按a/i/o進入插入模式,然后在最后加入如下內容 :
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

然后按ESC進入到命令模式,輸入 :wq 保存並退出

要想讓配置的環境變量生效,還需要執行如下指令:

source /etc/profile

4). 修改maven的settings.xml配置文件,配置本地倉庫地址

A. 切換目錄

cd /usr/local/apache-maven-3.5.4/conf

B. 編輯settings.xml配置文件

vim settings.xml

在其中增加如下配置,配置本地倉庫地址: 這里我建議使用自己配置的本地倉庫地址

<localRepository>/usr/local/repo</localRepository>

並在settings.xml中的 標簽中,配置阿里雲

<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

2.3 Linux權限

Shell腳本

#!/bin/sh
echo =================================
echo     自動化部署腳本啟動
echo =================================

echo 停止原來運行中的工程
APP_NAME=helloworld

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
	echo 'Stop Process...'
	kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
	echo 'Kill Process!'
	kill -9 $tpid
else
	echo 'Stop Success!'
fi

echo 准備從Git倉庫拉取最新代碼
cd /usr/local/helloworld

echo 開始從Git倉庫拉取最新代碼
git pull
echo 代碼拉取完成

echo 開始打包
output=`mvn clean package -Dmaven.test.skip=ture`

cd target

echo 啟動項目
nohup java -jar hellowprld.jar &> helloworld.log &
echo 項目啟動完成

但是Shell腳本要想正常的執行,還需要給Shell腳本分配執行權限。 由於linux系統是一個多用戶的操作系統,並且針對每一個用戶,Linux會嚴格的控制操作權限。接下來,我們就需要介紹一下Linux系統的權限控制。

1). chmod(英文全拼:change mode)命令是控制用戶對文件的權限的命令

2). Linux中的權限分為三種 :讀(r)、寫(w)、執行(x)

3). Linux文件權限分為三級 : 文件所有者(Owner)、用戶組(Group)、其它用戶(Other Users)

4). 只有文件的所有者和超級用戶可以修改文件或目錄的權限

5). 要執行Shell腳本需要有對此腳本文件的執行權限(x),如果沒有則不能執行

chmod命令可以使用八進制數來指定權限(0 - 代表無 , 1 - 執行x , 2 - 寫w , 4 - 讀r):

權限 rwx
7 讀 + 寫 + 執行 rwx
6 讀 + 寫 rw-
5 讀 + 執行 r-x
4 只讀 r--
3 寫 + 執行 -wx
2 只寫 -w-
1 只執行 --x
0 ---

舉例:

chmod 777 bootStart.sh   為所有用戶授予讀、寫、執行權限
chmod 755 bootStart.sh   為文件擁有者授予讀、寫、執行權限,同組用戶和其他用戶授予讀、執行權限
chmod 210 bootStart.sh   為文件擁有者授予寫權限,同組用戶授予執行權限,其他用戶沒有任何權限

注意:

三個數字分別代表不同用戶的權限

  • 第1位表示文件擁有者的權限
  • 第2位表示同組用戶的權限
  • 第3位表示其他用戶的權限

2.2.7 授權並執行腳本

在測試階段,我們可以給所有的人都賦予執行該shell腳本的權限。所以可以執行如下指令:

chmod 777 bootStart.sh

注意: 在執行maven指令進行打包時,第一次執行可能會耗時比較長,因為在進行maven工程的打包時,需要到中央倉庫下載工程依賴的jar包和插件(可以在settings.xml中配置阿里雲私服加速下載)。

image


免責聲明!

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



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