上一篇讲到服务器部署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. mysql 提交_MySQL 事务提交过程
  2. Windows任务管理器 explorer 进程
  3. Java线程池原理及使用
  4. Android之编译jni出错解决办法
  5. jzoj3832-在哪里建酿酒厂【指针】
  6. Android开发技术周报 Issue#70++
  7. 前端进阶-手写Vue2.0源码(三)|技术点评
  8. vb连接mysql未发现_vb连接mysql(错误代码)
  9. dea模型java实例_大水计划之DEA JAVA
  10. ThinkPad默认墙纸(心经版)
  11. 关系数据库理论:范式判断、函数依赖、无损分解、正则覆盖
  12. python 开任意数的平方
  13. 几个java小问题代码(大神不喜勿喷)
  14. 算法笔记(胡凡)学习笔记@Kaysen
  15. 第164篇,陌生人和贵人(扶摇生财思维)
  16. python pip 豆瓣镜像
  17. unity 打AB包中遇到的坑以及一些心得
  18. 6.2 基础有大用——《逆袭大学》连载
  19. Mac中禁用向日葵(Oray)控制端自启动
  20. C51接入OneNET-实现数据上传和命令下发

热门文章

  1. Ubuntu升级后DNS不好用
  2. 真正弄懂存储虚拟化、软件定义存储
  3. 企业级数据仓库建设最新版(附16页文档)
  4. 【算法leetcode】2341. 数组能形成多少数对(多种语言双百)
  5. Java实时显示日历,实现日历
  6. 日期天数记录工具:Days Countdown for Menu Bar
  7. java base64转图片并保存_java将base64解析图片保存到本地。
  8. 我们为什么解决不了大问题?
  9. k8s Ingress使用详解
  10. Java串口编程学习1-环境配置(64位Win7)