🍎 A web platform designed for MySQL Inception.
⚓ 基于Inception的SQL自动化审核平台。
登陆流程分两种,一种对接企业内部的OpenLDAP,实现账号统一管理。另一种是直接走数据库。两种方式的选择通过config.py
中的LDAP_ON_OFF
控制
分三种角色。Dev,开发人;Audit,审核人;Admin,管理员
- 数据库实例查看、申请、取消
- 工单查看、申请、取消、修改
- 工单状态、数目可视化展示
- 数据库实例查看、分配、撤销
- 工单查看、取消、驳回、执行、定时执行
- 支持 pt-online-schema-change 工具,大表可进行 online DDL操作
- SQL执行进度实时获取,中途可停止,需手动清除触发器和临时表
- 数据库实例添加、修改、删除
- 用户添加、修改、删除
发起SQL上线,由Inception自动审核,自动审核成功后,提交至Audit。
只有走pt-osc修改大表时,才会显示执行进度。具体多大的表走pt-osc,可以通过 Inception 来配置,具体参考 Inception文档。
- 0:Success,成功
- 1:Pending,未处理
- 2:Dev Cancelled,开发人取消
- 3:Audit Cancelled,审核人取消
- 0:Success,成功
- 1:Pending, 带人工审核
- 2:Check Failed,自动审核失败
- 3:Executing,执行中
- 4:Error,执行异常
- 5:Dev Cancelled,开发人取消
- 6:Audit Cancelled,审核人取消
- 7:Audit Rejected,审核人驳回
- 8:Timer,定时任务
-
Inception编译安装,请使用 bison 2.6 以下版本
-
请注意 Python3 和 Python2 编码不同
-
对接OpenLDAP,使用了flask-simpleLDAP扩展,为了兼容 python3,有一处源码需要修改,__init.__py 第153行,按如下修改
-
为了兼容 Inception 返回的信息,pyMysql 需要修改两处源码。
- Celery 最新版本即4.1.0 存在时区设置BUG,具体详见TimeZone Bug,具体就是设置了 Asia/Shanghai,ETA 执行的时间比正常东八区时间又多了8个小时,不过我已经在代码里处理过了。官方会在下个版本修复。
- 创建表结构
python manage.py shell
db.create_all()
- 创建用户
如果是走OpenLDAP的话,不需要手动创建用户,会自动同步到数据库中。
不走OpenLDAP,用户需要创建。角色的分配需要admin用户登陆之后修改。
创建方式一: 适用于普通用户,直接可以从登陆页面的注册链接进行注册
创建方式二: admin用户和普通用户,以创建test用户为例
python manage.py create_user --name test --password test --email [email protected]
- 启动 Celery
Celery 需要使用 broker 和 backend, 我这里都采用了 redis。具体 Celery 的使用 查看Celery文档
celery worker -A celery_runner --logleve=info --statedb=/tmp/worker.state
注意上面的 --statedb=/tmp/worker.state
,撤销的定时任务均被 Celery 保存在里面,所以最好不要丢失。
- 部署
Flask部署方式请参考部署
- 本地测试
python manage.py runserver --threaded
该项目已不再维护。