前后端Shell自动化部署

Git安装

安装Git

1
2
3
4
# 列出git安装包
yum list git
# 在线安装git
yum install git

生成SSH公钥

1
2
3
4
# 生成公钥,生成过程中直接回车默认
ssh-keygen -t rsa -C "1274604930@qq.com"
# 找到SSH公钥
cd ~/.ssh
  • id_rsa.pub 是公钥
  • id_rsa 是私钥

添加公钥

在Gitee中添加公钥,用户可以通过主页右上角 「个人设置」->「安全设置」->「SSH公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。

克隆代码,选择SSH方式。

  • git@ 开头的URL,使用ssh方式免登录

JDK安装

下载

下载安装包:https://repo.huaweicloud.com/java/jdk/

删除自带JDK

  • 输入:java -version
  • 发现有输入:rpm -qa | grep java 检测jdk的安装包,(注意:rpm命令符没有时记得下载一个输入:apt-get install +命令名称
  • 接着进行一个个删除包,输入:rpm -e --nodeps +包名
  • 最后再次:rpm -qa | grep java检查是否删除完即可

解压安装

1
2
3
4
5
6
# 解压到文件夹命令
cd /usr/local/lib
mkdir java
chmod 7777 java
# 解压到文件夹命令
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/lib/java

配置环境遍历

1
2
3
4
5
6
7
8
9
10
11
# 编辑环境变量配置文件
vim /etc/profile

# 添加如下内容
export JAVA_HOME=/usr/local/lib/java/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# 输入命令使配置文件生效
source /etc/profile

最后检查一下:java -version

Maven安装

安装

maven可以直接复制开发中用的maven到linux服务器,需注意配置阿里云镜像和本地仓库地址。

配置环境变量

同JDK一致,内容添加如下,别忘了source /etc/profile

1
2
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

检查一下:mvn -v

如果不可执行,则进入maven的bin目录,执行chmod 777 mvn,给mvn相应的执行权限。

nvm安装

下载

nvm是一个Node.js版本管理工具,它允许您安装和切换不同版本的Node.js。使用nvm可以避免一些依赖问题,因为它使用自己的环境变量和路径。

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

安装完成后,重新打开终端或运行source ~/.bashrc(或对应的shell配置文件),然后使用nvm安装Node.js:

1
2
3
4
复制nvm install node # 安装最新版本
nvm install 20.12.2 # 安装特定版本
nvm list # 列出本地下载的node
nvm use 版本号 # 指定使用node

CICD脚本

nginx已配置代理,已作为静态服务器。

已提前拉去项目代码到服务器。

后端启动脚本

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
#!/bin/sh
echo =================================
echo 后端服务自动化脚本部署
echo =================================

echo 停止原来运行中的工程
PID=$(netstat -tlnp | grep 8080 | awk '{print $7}' | awk -F '/' '{print $1}')
if [ -z "$PID" ]
then
echo 项目已停止
else
echo kill -9 $PID
kill -9 $PID
fi

echo 准备从Git仓库拉取最新代码
cd /root/automonitor/auto-monitor

echo 拉取代码
git pull origin master
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
echo 打包完成

cd tsy-admin/target

echo 启动项目
nohup java -jar tsy-admin.jar --spring.profiles.active=prod > /root/automonitor/nohup.out 2>&1 &
echo 项目启动完成

前端启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
echo =================================
echo 前端服务自动化脚本部署
echo =================================

echo 删除原来运行中的工程目录
rm -rf /root/lrwjz/nginx/nginx/html/dist
echo 删除成功

echo 准备从Git仓库拉取最新代码
cd /root/automonitor/auto-monitor-web

echo 拉取代码
git pull origin index_map
echo 代码拉取完成

echo 开始打包
output=`npm run build:prod`
echo 打包完成

echo 打包文件部署
mv dist /root/lrwjz/nginx/nginx/html/
echo 项目启动完成

备注

cmd连接linux

1
2
3
# 连接服务器,用户名@IP地址
ssh root@139.196.253.193
# 输入密码

cmd命令上传文件

1
2
3
# 上传当前cmd目录的dist,到服务器的指定目录
scp -r dist root@139.196.253.193:/root/lrwjz/nginx/nginx/html/
# 输入密码