前端用shell脚本在服务器部署前端代码

293 阅读1分钟

前端用shell脚本在服务器部署

背景

  1. 公司一般都有devOps,推荐使用这个操作
  2. 公司服务基于k8s部署,k8s是有流水线工程的,如果有条件的话,还是建议使用流水线部署, 方便而且容易追溯。
  3. 我写这个是因为公司流水线部署卡顿,容易受到运维同学影响。而且错误频出。还是不完善版本,极易耗费时间。因此,萌生了自己写一个部署脚本的念头。
  4. 本流程基于linux系统

流程

  1. 先本地打包,生成zip包
  2. 把zip包上传到服务器上
  3. 在服务器运行部署脚本
  4. 部署成功

脚本

  1. 本地打包
# !/bin/bash
# 进入打包目录
npm run build
# 生成zip包
zip -rv dist.zip dist
  1. 上传到服务器
# 通过lftp来登陆
lftp -u ${user},${password} sftp://${ip}:${port}<<EOF
# 登陆服务器后进行的操作
# 进入对应文件夹 
# 上传zip包
EOF
  1. 服务器运行部署脚步
# 服务器此时已有部署脚步
# sshpass 通过sshpass登陆ssh
sshpass -p password root@ip <<remotessh
# 执行在服务器的操作
remotessh
  1. 如此大功告成

小记

  1. k8s容器名可以写一个前缀,然后用时间催做后缀
date=data-center/data-center-web:dev-`date +%s`
  1. 安装lftp
brew install lftp
  1. 安装sshpass
# sshpass 是一个免登录上ssh的工具
# 因此 sshpass不能通过brew安装 需要手动安装
# 通过下载到本地进行安装
# 如果提示xcode命令行相关的。请根据提示来一遍就好了
wget https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
brew install sshpass.rb