乐趣区

关于ssh:卑微前端如何写一个自动部署脚本超简单-一学就会

引言: 小公司的前端个别是怎么部署的呢? 是不是在我的项目中npm run build, 而后关上 shell 工具, 登陆到服务器, 而后把打包后的代码拖到指定的目录下? 如果能够写一个脚本, 而后一行命令就能实现这一系列操作, 那是不是美滋滋? 当然如果你会应用 Jenkins, GitLab-Runner + GitLab-CI 进行自动化部署的话, 那就另当别论, 本文应用脚本的形式是一种比拟快捷, 轻便, 一看就废的那种, 好了, 废话不多说, 开始入手。

第 1 步:

首先关上你的本地的 ”git bash” 或者 ” 终端 ”, 输出ssh-keygen, 生成一个公私钥密钥对, 输出 command 当前就始终回车回车就行了, 如下图:

第二步:

公钥放到服务器上

  • 登陆服务器, cd 到 .ssh 文件夹上面
  • ls 查看有没有 ”authorized_keys” 文件, 如果没有的话, 就新建一个
  • 关上 ”authorized_keys” 文件, 而后把生成的公钥体贴
  • 重启服务器的 ssh 服务:

    私钥 (id_rsa) 就放在本地的.ssh 文件夹上面不动它就能够了

这个时候就能够通过
ssh -i ~/.ssh/id_rsa root@192.168.4.2 命令连贯到服务器了, 如果你连不上, 这个还有一个小插曲, 就是权限问题

  • authorized_keys 文件必须是 600 权限 (也就是 -rw——-) 或者 644
  • .ssh 目录必须是 700 权限(也就是 drwx——)

为了不便辨别私钥文件, 咱们把 id_rsa 文件名改成 deployKey, 而后就能够通过 ssh -i ~/.ssh/deployKey root@192.168.4.2 连贯到咱们的服务器

编写部署脚本

echo "Start build!"
npm run build:prod
ssh -i ~/.ssh/test_deploy_key root@192.168.4.2 "rm -rf /mydata/nginx/html/manage/*"
scp -r -i ~/.ssh/bfadmindeploykey ./dist/* root@192.168.4.2:/mydata/nginx/html/manage

保留文件名为: deploy.sh

功败垂成, 这时候每次你须要部署的时候, 就间接到我的项目目录下执行 ./dep

退出移动版