基于Shell脚本自动部署项目
流程
操作步骤如下:
1). 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中
2). 在Linux中安装Git,克隆代码
3). 在Linux中安装maven
4). 编写Shell脚本(拉取代码、编译、打包、启动)
5). 为用户授予执行Shell脚本的权限
6). 执行Shell脚本
1.Linux中安装Git
a. yum安装git
yum list git 列出git安装包
yum install git 在线安装git
git --version去验证git的环境
b. git克隆代码
cd /usr/local/
git clone git项目地址
2.Linux中安装maven
1.将maven安装包上传到Linux
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 保存并退出
4.重新刷新配置,让修改的配置生效
source /etc/profile
5.修改maven的settings.xml配置文件,配置本地仓库地址
cd /usr/local/apache-maven-3.5.4/conf
vim settings.xml
在其中增加如下配置,配置本地仓库地址: <localRepository>/usr/local/repo</localRepository>
并在settings.xml中的标签中,配置阿里云的私服,配在<mirrors>标签内部。
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
3.编写Shell脚本
在/usr/local/目录下创建一个目录 sh(mkdir sh),并将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=true`
cd target
echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
4.授予执行Shell脚本权限
Shell脚本要想正常的执行,还需要给Shell脚本分配执行权限。
chmod 777 bootStart.sh
三个数字分别代表不同用户的权限
第1位表示文件拥有者的权限
第2位表示同组用户的权限
第3位表示其他用户的权限
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):
5.执行Shell脚本
1.执行脚本
./bootStart.sh
2.查看java进程
ps -ef|grep java
6.设置静态IP
安装的Linux操作系统,安装完毕之后并没有配置IP地址,默认IP地址是动态获取的,那如 果我们使用该Linux服务器部署项目,IP动态获取的话,也就意味着,IP地址可能会发生变动,那我们访问项目的话就会非常繁琐,所以作为服务器,我们一般还需要把IP地址设置为静态的。
1). 设置静态IP,修改 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件,
将BOOTPROTO=dhcp修改为BOOTPROTO=static
添加如下配置
IPADDR="192.168.138.100" # 设置的静态IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.138.2" # 网关地址
DNS1="192.168.138.2" # DNS服务器
2). 修改网络配置完毕后,重启网络服务
systemctl restart network