通过shell脚本自动部署项目
操作步骤:
- 在Linux中安装Git
- 在Linux中安装maven
- 编写Shell脚本(拉取代码、编译、打包、启动)
- 为用户授予执行Shell脚本的权限
- 执行shell脚本
具体实现:
在Linux中安装Git
1
2
3
4yum list git
yum install git
CMAKE使用Git克隆代码
1
2
3
4cd /usr/local/
git clone https://gitee.com/[占位]/[占位].git
ASCIIDOC将maven安装包上传到Linux,在Linux中安装maven
1
2
3
4
5
6
7
8
9
10
11
12
13
14tar -zxvf apache-maven-3.5.4-bin.tar.gz-C/usr/local
vim /etc/profile
修改配置文件,加入如下内容
export MAVENIHOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA HOME/bin:$MAVEN HOME/bin:$PATH
source /etc/profile
mvn -version
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
修改配置文件内容如下
<localRepository>/usr/local/repo</localRepository>
BASHShell脚本
可以创建一个sh脚本在/usr/local/sh目录下
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
38
39
40#!/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 项目启动完成
SH为用户授权
1
2
3
4
5
6chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级:文件所有者(0wner)、用户组(Group)、其它用户(0ther Users)
只有文件的所有者和超级用户可以修改文件或目录的权限要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
STYLUS1
2
3-r--r--r--.1 root root 785 May 17 20:43 bootstart.sh
CEYLON
chmod命令可以使用八进制数来指定权限
举例:
chmod 777 bootstart.sh为所有用户授予读、写、执行权限chmod 755 bootstart.sh为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限chmod 210 bootstart.sh为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限注意:三位数字分别代表不同用户的权限 第1位表示文件拥有者的权限 第2位表示同组用户的权限 第3位表示其他用户的权限
# 权限 rwx 7 读+写+执行 rwx 6 读+写 rw- 5 读+执行 r-x 4 只读 r– 3 写+执行 -wx 2 只写 -w- 1 只执行 –x 0 无 —
通过shell脚本自动部署项目
http://example.com/2024/07/31/通过shell脚本自动部署项目/
