最近玩springboot篡诽,自己有一個(gè)服務(wù)器,寫(xiě)完了都放到服務(wù)器去部署席镀,剛開(kāi)始用的gui-manager方式匹中,但是慢慢的發(fā)現(xiàn),這個(gè)方法部署太慢了豪诲。大家都知道一般的小水管寬帶的上傳也就70k左右顶捷,部署一次等n久。于是想著能不能自動(dòng)部署屎篱,每次把代碼提交即可服赎。經(jīng)過(guò)查找資料結(jié)合自身已有的了解葵蒂,找到了Jenkins,很強(qiáng)大重虑,但是配置什么的略微麻煩刹勃,看網(wǎng)上的教程貌似也要編寫(xiě)腳本,于是想著何不自己直接擼個(gè)腳本算了嚎尤,于是各種查找各種學(xué)腳本,于是有了如下簡(jiǎn)單的部署腳本伍宦,在結(jié)合crontab任務(wù)芽死,基本可以滿(mǎn)足自己的需求了。
貼出腳本代碼如下:
腳本autodeploy.sh
#!/bin/sh
# Tomcat的webapps地址
tomcat_webapps_path=/usr/local/apache-tomcat-9.0.0.M18/webapps/
# github 項(xiàng)目地址
github_url=git@github.com:megoc/springboot-mybatis.git
#截取"/"右邊的
tmp=${github_url##*/}
#截取"."左邊的
project_name=${tmp%%.*}
echo "========="$project_name===============
#沒(méi)有更新標(biāo)志
b="Already"
c="up-to-date"
#判斷是否已經(jīng)clone 過(guò)了
if [ ! -d "$project_name" ]
then
rm -rf $project_name
#獲取命令執(zhí)行的結(jié)果
a=$(git clone $github_url 2>&1)
cd $project_name
echo $a
else
cd $project_name
echo "=========begin git pull============"
#獲取pull的結(jié)果
a=$(git pull origin master 2>&1)
echo $a
fi
#如果結(jié)果中包含相關(guān)的字段次洼,則認(rèn)為沒(méi)有更新关贵,退出不進(jìn)行打包部署
echo $a
echo $b
echo $c
#輸出字符串是否包含關(guān)鍵字更新
if [[ $a =~ $b ]]
then
echo ------------no update-------------
exit 0
elif [[ $a =~ $c ]]
then
echo ------------no update-------------
exit 0
fi
echo "============begin package=========="
rm -rf target
#開(kāi)始打包
mvn package
cd target/
#開(kāi)始部署,此方式不妥當(dāng)卖毁,應(yīng)該通過(guò)gui進(jìn)行部署揖曾,有興趣的自己實(shí)現(xiàn)
#停止Tomcat服務(wù)
systemctl stop tomcat
rm -rf ${tomcat_webapps_path}"ROOT"
#移動(dòng)到Tomcat目錄下并自動(dòng)命名
mv -u *.war ${tomcat_webapps_path}"ROOT.war"
#重啟Tomcat服務(wù)
systemctl start tomcat
echo "=============deploy end============="
腳本略顯簡(jiǎn)陋,畢竟不是專(zhuān)業(yè)亥啦。
腳本運(yùn)行前提
- 安裝JDK JDK和Tomcat安裝
- 安裝git并配置git的SSH登錄
- maven 安裝炭剪,最簡(jiǎn)單方式
yum install maven
也可以到官網(wǎng)自己去下載安裝包配置
腳本使用方式:
- 在任何目錄下新建腳本文件
vi autodeploy.sh
- 復(fù)制以上腳本粘貼,并修改Tomcat的webapps的路徑為你自己服務(wù)器上的路徑翔脱,同時(shí)修改GitHub的項(xiàng)目地址奴拦,還有你的Tomcat的服務(wù)器的啟動(dòng)(systemctl start tomcat)和停止(systemctl stop tomcat)指令,和我一樣的不需修改
- 保存退出届吁,執(zhí)行指令確保腳本可運(yùn)行
chmod +x autodeploy.sh
- 手動(dòng)運(yùn)行腳本
#在腳本所處目錄
./autodeploy.sh
- 配置定時(shí)任務(wù)--crontab定時(shí)任務(wù)配置
#每30分鐘執(zhí)行一次腳本错妖,根據(jù)自己需求改
*/30 * * * * /root/autodeploy.sh
大工告成,現(xiàn)在只要提交到GitHub上即可疚沐,等時(shí)間一到或者直接登錄服務(wù)器運(yùn)行腳本即可自動(dòng)部署項(xiàng)目了暂氯。
提示:
本腳本運(yùn)行于CentOS 7 其他環(huán)境未測(cè)試。