一、Linux 配置SSH Key 实现免密码登录
实现步骤如下:
-
创建密钥,执行命令 ssh-keygen -t rsa
-
将本地的公钥发送给远程的服务器(第一次发送给服务器,需要输入一次服务器的登录密码)执行如下命令: ssh-copy-id -i ~/.ssh/id_rsa.pub userName@ip
参数说明: userName: 远程服务器登录的用户名 ip: 远程服务器的ip
-
连接远程服务器,测试一下是否已连接成功 ssh userName@ip
-
如果已生成过密钥,要连接其它的服务器,重复第二步即可(将本地的密钥再发送到新的服务器中即可)
二、编写Shell自动化部署脚本
- 在项目的根目录下新建一个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 "***************部署成功***************"
-
在package.json文件中scripts中添加一行脚本 "publish": "sh ./publish.sh"
-
运行脚本 npm run publish