一三六、从零到一实现自动化部署
上一篇讲到服务器部署Node项目、Vue spa静态项目、ssr项目
- 个人blob地址
- csdn地址
然而每次都要去手动部署,不仅麻烦,对Nginx,Linux不熟悉的也不友好,目前的常见的自动化部署有jenkins
、docker
等,但是有一定的学习成本,本文通过Node+vue的实现一键自动化部署。
技术栈
前端:
- vue (MVVM 框架)
- element-ui (ui框架)
- axios (接口请求)
- socket.io-client (创建 io 实例)
- vue-socket.io ($socket挂载到vue实例)
服务端:
- Node.js
- koa
- socket.io
- log4js
- 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('
一三六、从零到一实现自动化部署相关推荐
- 打包node服务端_如何基于NodeJS从零构建线上自动化打包工作流?
前言 NodeJS在前端领域正扮演着越越重要的地位,它不仅可以让前端工作者使用javascript编写后端代码,还能方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动,非阻塞I/O ...
- 【nodejs原理源码赏析(9)】用node-ssh实现轻量级自动化部署
[摘要] node脚本实现轻量级自动化部署 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 需求描述 前端工程出包后实现简易的自动化部署. 二. ...
- K8S实战集训第一课 Ansible自动化部署k8s、弹性伸缩、Helm包管理、k8s网络模型介绍
Ansible自动化部署K8S集群 一.Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部 ...
- kubectl查看node状态_全栈之路:使用pm2自动化部署node项目
相关前三篇 全栈之路:前端工程师如何从 0 开始了解 Docker 全栈之路:vue-cli3 项目从搭建优化到docker部署 全栈之路:从零搭建docker+jenkins+node.js自动化部 ...
- centos+jenkins+nginx+gitlab前端自动化部署全记录
0. 前言 我们在开发一个新的项目时,总是需要将前端部署到测试服务器上,给测试或者产品访问.简单的来说,如果想部署前端到服务器,服务器需要提供一个服务来访问前端.如果我们在开发中没有涉及Node.js ...
- 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.0.0)
TableGo_20220801 v8.0.0 正式版发布,此次版本累计更新如下: 1.生成项目功能新增支持若依框架,可同时生成若依框架代码和所有业务表的前后端基础CRUD代码,一键搞定所有 2. ...
- Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
目前项目使用的jenkins 自动化部署的还是比较多的 ,所以趁着脑瓜子还清醒,来写一下如何使用 jenkins 使用码云更新代码后,重新构建就是最新的代码,费话不多少了 直接上货, 首先要做一下准备 ...
- Azure自动化部署运维浅谈
本次来谈一谈如何在Azure中实现一些简单的自动化运维的需求,一般来讲自动化运维我们通过很多第三方的工具平台实现,比较流行的目前有很多,比如老牌的chef, puppet,新兴的PowerShell ...
- 公有云环境下应用程序的自动化部署与水平扩展问题
先介绍了一下公有云计算环境下的一些特点,再根据这些特点探讨一下作为云计算用户而言,如何对应用程序做好自动化部署和水平扩展(弹性计算)的问题.阅读本文需要有一定的云计算知识.开发运维知识. 公有云环境的 ...
最新文章
- mysql 提交_MySQL 事务提交过程
- Windows任务管理器 explorer 进程
- Java线程池原理及使用
- Android之编译jni出错解决办法
- jzoj3832-在哪里建酿酒厂【指针】
- Android开发技术周报 Issue#70++
- 前端进阶-手写Vue2.0源码(三)|技术点评
- vb连接mysql未发现_vb连接mysql(错误代码)
- dea模型java实例_大水计划之DEA JAVA
- ThinkPad默认墙纸(心经版)
- 关系数据库理论:范式判断、函数依赖、无损分解、正则覆盖
- python 开任意数的平方
- 几个java小问题代码(大神不喜勿喷)
- 算法笔记(胡凡)学习笔记@Kaysen
- 第164篇,陌生人和贵人(扶摇生财思维)
- python pip 豆瓣镜像
- unity 打AB包中遇到的坑以及一些心得
- 6.2 基础有大用——《逆袭大学》连载
- Mac中禁用向日葵(Oray)控制端自启动
- C51接入OneNET-实现数据上传和命令下发
热门文章