引言: 小公司的前端一般是怎么部署的呢?是不是在项目中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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。