前沿:

        那么以前都是调取一个url的接口,把结果post过去,web服务器接收到请求,会给所有链接到websocket server的客户端send数据。那么问题来了,这总是频繁的调用url,然后再send,觉得有些多此一举,还不如用python websocket client直接链接到websocket server上来,那么既然都连接在一块了,互相交互也就方便的多。

虽然爬虫爬了我的网站,但是大家别忘了我的原站   ,  blog.xiaorui.cc

2014版本的saltstack出来了一个叫做 event 事件的东西,那么问题来了,event是什么?  

我也不长篇大论了,他是为saltstack提供了一个事件机制,咱们通过saltstack做的一些实例操作,在event可以体现出来。比如,调用test.ping 、 cmd.run的时候,会发现在event上可以看到我们在操作的动作。 


最明显的log是,创建任务,然后找jid的结果,没有的话,再循环的查训,知道你配置了timeout为止。

跑一下,结果如下


在这里也可以琢磨出来他获取结果的思路:

创建一个任务及jid,然后每次去看看刚才(sleep 30;ip a ) 的结果,每隔五秒轮寻一次结果。每次去saltutil.find_job的jid是相同的,不同的是saltutil.find_job他本身的任务号。


对于websocket把结果打到前端,咱们就直接用websocket客户端搞~

websocket模块的地址在,https://github.com/liris/websocket-client.git

下面是用python实现的websocket的客户端。

话说event和websocket的逻辑有些乱,可以预先把任务的jid放到list里面,然后每次去遍历数据,send到前端。具体的实现代码我就不详细写了,我上面已经说了event的用法,相信大家也明白。 


讲的不多,同样写的也很是泛泛,大家图个Happy就好了 ~



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

沈灿的新书 《Ansible自动化运维:技术与最佳实践》

    说说沈灿吧,在蓝汛、京东、百度…都转悠过,  擅长集群管理运维,水平挺好。 跟沈灿认识也有好几年了,一直说带我去大保健,...

阅读全文

对于saltstack更换zeromq用raet做通信方式的闲聊

      经常用saltstack的人会发现,zeromq貌似不是那么靠谱,其实不能说0mq不靠谱,应该说salt的这样的集群的环境,导致zeromq 不能更好的...

阅读全文

用Saltstack的returners实现监控及执行结果回调

这是以前在51cto写的文章,因为有了独立的博客,so 转了过来。没有saltstack基础的朋友,看下我以前的教程 saltstack 入门教程。。。。 那么大家在...

阅读全文