5

WTS介绍

WTS,全称web terminal shell,在web窗口和远程服务器分别建立一个虚拟term,实现在web端输入命令并在远程机器上执行,然后把结果回写到web控制台。

系统架构

wts architecture

WTS分为两部分,其中monitor(wts-monit)用于web端输入以及管理remote clients,客户端模块(如Node.js版)用于处理monit发来的指令。

monitor基于koa启动一个webserver,再使用websocket与前端实时互推数据。monit和remote client之间建立TCP长连接,client端掉线后会自动重连。

运行截图

wts architecture

使用场景

  • 偷懒:不用安装类似xshell的terminal软件了,开个网页即可连到服务器

  • 当跳板机使用:由于安全限制,一般不直接登陆IDC机器,需要跳板机作为中转,做好权限控制即可。

如何使用

  • monit机器

wts-monit已经作为node模块发布到npm,可以直接通过npm安装(选择一台与公网隔离的机器):

npm install wts-monit

安装好依赖模块之后即可启动monit(由于使用了koa框架,所以需要Node版本0.12+或者io.js)

cd wts-monit && node index.js

或者推荐使用pm2来启动:

pm2 start pm2_deploy.json

然后在浏览器打开http://[monit host]:3005即可看到web界面。

  • client机器

接着在各remote机器上安装client模块:

npm install wts-node

一般来说,一台remote机器上器启一个实例即可,然后为了方便管理,最好给remote机器分配一个group:

cd wts-node && vim conf.js # 一般只需要设置group项即可

调试:

node index.js

部署启动:

pm2 start pm2_deploy.json

dmyang
3.4k 声望249 粉丝

一只养喵的程序员。