Shell脚本自动部署项目
自动部署项目
在本地项目中,通过git将最新代码推送到远程仓库,在linux中通过git拉取远程仓库的SpringBoot项目代码,通过maven进行编译、打包处理成jar包,最后通过java -jar 项目jar包名进行启动。
前提:Linux系统已经搭建了JDK和mysql服务,项目所关联的sql文件已经初始化。
操作步骤:
1 2 3 4 5 6
| # 安装git yum list git # 列出git安装包 yum install git*** # 在线安装git # 克隆项目代码 cd /usr/local git clone https://gitee.com/liu-renwei/reggie_take_out.git
|
- 安装maven
- 安装maven
- 设置环境变量
- 修改settings.xml配置文件
1 2 3 4 5 6 7 8 9 10
| # 安装maven tar -zxvf appche-maven-3.5.4-bin.tar.gz -C /usr/local # 设置环境变量 vim /etc/profile export MAVEN_HOME=/usr/local/apache-maven-3.5.4 # maven安装目录 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH # 加入到PATH source /etc/profile # 重新加载 # 修改settings.xml vim /usr/local/appche-maven-3.5.4/conf/settings.xml <localRepository>/usr/local/myrepository</localRepository> # 设置maven仓库
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #!/bin/sh echo ================================= echo 自动化部署脚本启动 echo =================================
echo 停止原来运行中的工程 APP_NAME=reggie_take_out
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/reggie_take_out
echo 开始从Git仓库拉取最新代码 git pull echo 代码拉取完成
echo 开始打包 output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目 nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log & echo 项目启动完成
|
为当前用户授权
- 查看当前用户对shell脚本所拥有的权限
- 为用户授权,可执行该脚本
1 2
| ll # 列出当前目录文件及显示用户所拥有的权限 chmod 744 bootStart.sh # 修改用户对shell脚本文件的权限
|
运行脚本
权限设置
linux系统一切皆文件,所以本身通过权限管理控制不同用户对文件的读、写、执行操作。


静态网络设置
在实际的工作里,linux服务器都是使用静态ip地址,ip地址都是固定的,防止系统重启或网络变得改变linux的ip地址。
- 修改网络配置文件
- 重启网络服务:systemctl restart network
