上一篇讲到服务器部署Node项目、Vue spa静态项目、ssr项目

  • 个人blob地址
  • csdn地址

然而每次都要去手动部署,不仅麻烦,对Nginx,Linux不熟悉的也不友好,目前的常见的自动化部署有jenkinsdocker等,但是有一定的学习成本,本文通过Node+vue的实现一键自动化部署。

技术栈

前端:

  1. vue (MVVM 框架)
  2. element-ui (ui框架)
  3. axios (接口请求)
  4. socket.io-client (创建 io 实例)
  5. vue-socket.io ($socket挂载到vue实例)

服务端:

  1. Node.js
  2. koa
  3. socket.io
  4. log4js
  5. pm2

实现思路

前端选择要部署的项目点击部署按钮,调用node提供的部署接口,node拿到参数执行部署脚本,并将部署 log 通过websocket返回给前端

流程图如下

具体实现

服务端

1、开启socket服务

// app.js
// 开启 socket 服务
// socket模块
const {Server} = require('socket.io');
// 为socket新起个端口
const io = new Server(9001, {// 是否启用与 Socket.IO v2 客户端的兼容性。allowEIO3: true,transports: ['websocket', 'polling'],cors: {origin: '*',methods: ['GET', 'POST']}
});io.on('connection', socket => {console.log('connection socket连接成功');app.context.socketIo = socket;
});

2. 实现deploy接口

// app/api/v1/deploy.js
const Router = require('koa-router');const {DeployValidator} = require('@validators/deploy');
const {Deploy} = require('@deploy/index.js');
const {Resolve} = require('@lib/helper');
const res = new Resolve();const router = new Router({prefix: '/api/v1'
});//
router.post('/deploy', async ctx => {// 通过验证器校验参数是否通过const v = await new DeployValidator().validate(ctx);// 搜索写真const [err, data] = await Deploy.runSh({kw: v.get('body.kw'),socketIo: ctx.socketIo});console.log('												

一三六、从零到一实现自动化部署相关推荐

  1. 打包node服务端_如何基于NodeJS从零构建线上自动化打包工作流?

    前言 NodeJS在前端领域正扮演着越越重要的地位,它不仅可以让前端工作者使用javascript编写后端代码,还能方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动,非阻塞I/O ...

  2. 【nodejs原理源码赏析(9)】用node-ssh实现轻量级自动化部署

    [摘要] node脚本实现轻量级自动化部署 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 需求描述 前端工程出包后实现简易的自动化部署. 二. ...

  3. K8S实战集训第一课 Ansible自动化部署k8s、弹性伸缩、Helm包管理、k8s网络模型介绍

    Ansible自动化部署K8S集群 一.Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部 ...

  4. kubectl查看node状态_全栈之路:使用pm2自动化部署node项目

    相关前三篇 全栈之路:前端工程师如何从 0 开始了解 Docker 全栈之路:vue-cli3 项目从搭建优化到docker部署 全栈之路:从零搭建docker+jenkins+node.js自动化部 ...

  5. centos+jenkins+nginx+gitlab前端自动化部署全记录

    0. 前言 我们在开发一个新的项目时,总是需要将前端部署到测试服务器上,给测试或者产品访问.简单的来说,如果想部署前端到服务器,服务器需要提供一个服务来访问前端.如果我们在开发中没有涉及Node.js ...

  6. 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.0.0)

    TableGo_20220801 v8.0.0 正式版发布,此次版本累计更新如下:  1.生成项目功能新增支持若依框架,可同时生成若依框架代码和所有业务表的前后端基础CRUD代码,一键搞定所有  2. ...

  7. Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee

    目前项目使用的jenkins 自动化部署的还是比较多的 ,所以趁着脑瓜子还清醒,来写一下如何使用 jenkins 使用码云更新代码后,重新构建就是最新的代码,费话不多少了 直接上货, 首先要做一下准备 ...

  8. Azure自动化部署运维浅谈

    本次来谈一谈如何在Azure中实现一些简单的自动化运维的需求,一般来讲自动化运维我们通过很多第三方的工具平台实现,比较流行的目前有很多,比如老牌的chef, puppet,新兴的PowerShell ...

  9. 公有云环境下应用程序的自动化部署与水平扩展问题

    先介绍了一下公有云计算环境下的一些特点,再根据这些特点探讨一下作为云计算用户而言,如何对应用程序做好自动化部署和水平扩展(弹性计算)的问题.阅读本文需要有一定的云计算知识.开发运维知识. 公有云环境的 ...

最新文章

  1. BERT各个场景实例代码
  2. 第二周 第七节 列表的使用
  3. Qt修炼手册2_动态设计
  4. 一些C和C++的常见问题集锦 ----不停更新
  5. 15.8.2 泛型数组
  6. 九把巨剑,为什么会从天而降?
  7. 深入理解Javascript中构造函数和原型对象的区别
  8. C++程序调用python3
  9. php header 刷新,一个离奇的php header函数问题的解决
  10. sqlserver 组内排序
  11. 《信号与系统学习笔记》—周期信号的博里叶级数表示(二)
  12. 6款支持中文语音识别开源软件的简单使用
  13. 计算机识别人脸原理,人脸识别:原理、方法与技术
  14. 【回眸】哈希值是什么
  15. ubuntu 18改MAC桌面
  16. 第三次小班讨论课——海明检验码、用晶体管而不是逻辑门实现异或门
  17. WEB网站压力测试方案 压力测试如何换算并发用户数
  18. 智能手环---设计与实现
  19. 客户端与服务端的区别
  20. Deepin禁用usb声卡

热门文章

  1. 沈阳5年java月薪多少钱_沈阳java工资怎么样,沈阳java工资很高吗,沈阳java工资水平如何...
  2. base64解析图片 【转】
  3. 计算机组装大赛的新闻稿,重庆科创职业学院开展“科创IT杯”计算机技能竞赛(新闻稿)...
  4. 服务器多如何开虚拟机,服务器可以多开虚拟机
  5. tp5开发PayPal
  6. 模拟演讲者视图_PPT中设置演讲者视图的方法
  7. 在腾讯会议中如何让别人看不到演讲者视图,只有自己能看到?
  8. Unity基础-物理系统
  9. 转载二分 01 分数规划即最大化平均值的证明0/1分数规划、最优比率生成树、最优比率环
  10. 六成大学生认为自己毕业10年内会年入百万!网友:知乎上多了,没被社会毒打过吧!...