SSH+Shell前端自动化部署

727 阅读1分钟

一、Linux 配置SSH Key 实现免密码登录

实现步骤如下:

  1. 创建密钥,执行命令 ssh-keygen -t rsa

  2. 将本地的公钥发送给远程的服务器(第一次发送给服务器,需要输入一次服务器的登录密码)执行如下命令: ssh-copy-id -i ~/.ssh/id_rsa.pub userName@ip

    参数说明: userName: 远程服务器登录的用户名 ip: 远程服务器的ip

  3. 连接远程服务器,测试一下是否已连接成功 ssh userName@ip

  4. 如果已生成过密钥,要连接其它的服务器,重复第二步即可(将本地的密钥再发送到新的服务器中即可)

二、编写Shell自动化部署脚本

  1. 在项目的根目录下新建一个publish.sh文件,脚本内容如下:
#!/bin/bash
rm -r ./dist # 清空dist目录
currentDate=$(date +%Y%m%d-%H%M) # 获取当前日期

npm run build  # 打包项目
echo "连接服务器"
# 连接服务器->进入指定目录->将当前的包备份一份
ssh root@ip "cd /usr/local/nginx_proj/8088;mv sdmqs bak_sdmqs/sdmqs_${currentDate};"
echo "连接服务器成功"
# 上传本地的包到服务器指定的目录
scp -r ./dist/* root@ip:/usr/local/nginx_proj/8088/
echo "***************部署成功***************"
  1. 在package.json文件中scripts中添加一行脚本 "publish": "sh ./publish.sh"

  2. 运行脚本 npm run publish