后台的架构图
功能的介绍
- 使用的是flask框架开发,前端用的BootStrap+Jquery.
- 任务的使用的是celery异步框架,这样就剥离了前端与后端的阻塞.
- 后台与各个服务器端通信使用的ZeroMQ,它的python库为Pyzmq. 利用到了一个常用的模型Pub/Sub, 实时交互Req/Rep等
- 数据库层了, Redis作为Celery的Broker,同时会做为一些数据的缓存. 同时使用SQLAlchemy做为ORM,谁用谁知道.
- Agent端的任务执行,全部使用Python模块化处理了,执行指定的任务,就调用对应编排好的任务; 任务使用多线程执行的,执行完成之后把结果推送到处理结果的队列中, 再由结果队列Push到后台的Log Collector日志搜集端. 由LogCollector处理返回的日志并格式化入库.
页面的一些截图
后台首页
游戏服管理
支持自动部署,快速新建,因为是windows服务器,所以所有游戏服操作, 用ZMQ写了一套C/S架构,有点类似于salt的一套程序.
游戏组管理
底层部署是利用ansible api完成
指令操作
对游戏服进行一些指令操作.都是用ZMQ写的接口实现的
前端资源列表
游戏更新
分为前后端更新.
任务列表
所有的执行操作都是用的celery实现的异步化, 提交的任务在这里总览
执行任务的一些详情
SVN的在线更新
这个是实时返回输出的. 之后的Ansible Gui开发,也是会用到socket.io的
CDN推送
把公司用到的CDN使用都API化,实现统一的一个推送界面
资产的管理
只需要录入初始的IP, 就可以用ansible 的api自动采集硬件信息,变更的记录也弄成了一个时间序列形式的展示
Host主机的一些变量设置
如果你了解ansible. 那你就知道这是在干啥了.
用户中心的管理
包括用户管理/小组管理/部门管理/权限模块管理.权限的设计模型.
用户可以加入到用户小组中, 一个部门下面可以有多个小组. 部门管理员可以对本部门拥有的权限,授权到小组中.可以自己管理本部门下小组/用户; 所有小组作为最小的权限单元,只要用户加入到所属部门的小组中,就自动集成小组权限. 小组拥有的权限, 最大受限于部门拥有哪些权限.
TODO
项目的源码,待整理完成之后,在公布出去.