自动化运维平台(日志实时刷新到web界面)

针对前面两篇博客的续写,主体的都写的差不多了,但是实际真正的功能并没有写。功能按钮如下:分支显示,打包,重启。

实时刷新到web的整体思路:

当点击分支显示时,做的操作是,把服务名发送到后端,然后调用shell执行git相关命令的操作,将所有分支实时显示到web界面上,然后通过点击触发事件将分支名加到vuex中对应的服务名后面的branch字段中,此时public公共组件里面的watch会实时监听vuex中的值将分支名称显示到如下,当点击打包按钮时,会将这个分支名和服务名一并发送到后端,执行相关的shell脚本,执行完相关的shell脚本后将jar包发送到指定的位置,当然在执行这个shell过程中会实时的将打包日子显示到web界面上,对于重启按钮显示日志也是一样的,但是这里想用其他方法实现。接下来会讲到。





image.png

用到的技术:

第一版:websocket+paramiko

参考博客:https://www.cnblogs.com/xiao987334176/p/10289262.html

思路:通过paramiko模块实现python和shell的交互,并将执行的结果保存到标准输出中,然后通过和websocket循环的方式显示到web界面中。


第二版:websocket+websocketd


websocketd的官网:http://websocketd.com/


webcocketd的简单使用:

        websocketd允许用几乎任何编程语言编写WebSocket端点。

        端点的连接与关系:

        每当浏览器连接到该URL时,websocketd服务器将启动进程的新实例。当浏览器断开连接时,进程将停止。

        如果有10个浏览器连接到您的服务器,那么将有10个独立的程序实例运行。websocketd负责监听WebSocket连接并启动/停止程序进程。


是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。有浏览器发起建立连接之后,服务端也可以主动向浏览器发送数据。

这是我自己测试的结果:

image.png

官网还有websocket+websocketd的测试,到时候将websocket的代码部分写入到vue中的script中就可以了。


websocketd官网上有测试,拷贝下来也可以自己测试,完全没有问题的。这里没有继续在代码里面实现的原因是被打击的太严重了,做完之后发现和jenkins持续构架并没有什么区别,jenkins的流程也是在本地打包,打好包之后使用ssh方式将jenkins服务器上的包发送到远程主机并执行重启相关的脚本。




猜你喜欢

转载自blog.51cto.com/11726212/2379507
0条评论
添加一条新回复