通过shell脚本自动部署项目
- 操作步骤:
- 在Linux中安装Git
- 在Linux中安装maven
- 编写shell脚本(拉取代码、编译、打包、启动)
- 为用户授予执行shell脚本的权限
- 执行shell脚本
执行过程:Linux服务器(编译、打包、启动)<=pull= Git仓库 <=push= 本地开发环境
-
在Linux中安装Git
yum list git 列出git安装包
yum install git 在线安装git
-
使用Git克隆代码
cd /usr/local
git clone https://gitee.com/chen_yi_001/mavenprojects.git
这里需要注意的就是:如果是私有库的话需要输入码云平台的账号密码,才可以克隆!!!
-
将maven安装包上传到Linux,在Linux中安装maven
tar -zxvf apache-maven*** -C /usr/local
vim /etc/profile 修改配置文件,加入如下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4 对应的版本号
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:MAVEN_HOME/bin:$PATH
source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml 修改配置文件内容如下
/usr/local/repo
-
将shell脚本文件复制到Linux bootStart.sh
shell脚本(shell script),是一种Linux系统中的脚本程序
使用shell脚本编程跟javaScript,java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
#!/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/javaapp/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 项目启动完成
-
为用户授权
-
chmod(change mode)命令是控制用户对文件的权限的命令
Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其他用户(Other Users)
只有文件的所有者和超级用户可以修改文件或者目录的权限
要执行shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
-
-
chmod命令可以使用八进制数来指定权限
<tr> <td>7</td> <td>读+写+执行</td> <td>rwx</td> </tr> <tr> <td>6</td> <td>读+写</td> <td>rw</td> </tr> <tr> <td>5</td> <td>读+执行</td> <td>rx</td> </tr> <tr> <td>4</td> <td>读</td> <td>r</td> </tr> <tr> <td>3</td> <td>写+执行</td> <td>wx</td> </tr> <tr> <td>2</td> <td>写</td> <td>w</td> </tr> <tr> <td>1</td> <td>执行</td> <td>x</td> </tr> <tr> <td>0</td> <td>无</td> <td></td> </tr>
# 权限 rwx -
设置静态ip(虚拟机需要设置)
-
重启网络服务
systemctl restart network
注意:重启完网络服务后ip地址已经发生改变,此时xshell已经连接不上Linux系统,需要创建一个新连接才能连接到Linux。