mysql pcona,GitHub - Tianny/incepiton-mysql: A web platform designed for mysql inception

Incepiton Mysql

🍎 A web platform designed for MySQL Inception.

⚓ 基于Inception的SQL自动化审核平台。

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d76332e782d6f72616e67652e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666c61736b2d76302e31322e322d6f72616e67652e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d7973716c2d76352e372d6f72616e67652e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f63656c6572792d76342e302e312d6f72616e67652e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61746573742d2d76657273696f6e2d76312e302e302d677265656e2e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f776e6c6f6164732d316b2d677265656e2e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667

功能一览

登陆

登陆流程分两种,一种对接企业内部的OpenLDAP,实现账号统一管理。另一种是直接走数据库。两种方式的选择通过config.py中的LDAP_ON_OFF控制

权限管理

分三种角色。Dev,开发人;Audit,审核人;Admin,管理员

Dev功能

数据库实例查看、申请、取消

工单查看、申请、取消、修改

工单状态、数目可视化展示

Audit功能

数据库实例查看、分配、撤销

工单查看、取消、驳回、执行、定时执行

支持 pt-online-schema-change 工具,大表可进行 online DDL操作

SQL执行进度实时获取,中途可停止,需手动清除触发器和临时表

Admin功能

数据库实例添加、修改、删除

用户添加、修改、删除

邮件通知

重要功能介绍

支持分表操作

829820610bee0fafef0368291bbe420e.png

自动审核

发起SQL上线,由Inception自动审核,自动审核成功后,提交至Audit。

d7afe6df5a7844d1d6f67b9ca4c2b34e.png

审核人操作

8e66ac32b62d4aba8a3683b70fe44f0b.png

SQL执行进度实时获取

只有走pt-osc修改大表时,才会显示执行进度。具体多大的表走pt-osc,可以通过 Inception 来配置,具体参考 Inception文档。

0786439f417f1dcb928a2af046331420.png

定时任务

定时任务可设置、取消

76401961c80df7aa89bb20202e1e301d.png

工单图表

chart.png

回滚操作

cc21b45f59a149fa87f10f01ea512837.png

资源状态说明

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行,按如下修改

d63a9b01c00f97949fbf71c063d853dc.png

为了兼容 Inception 返回的信息,pyMysql 需要修改两处源码。

python3使用的pyMysql模块里并未兼容inception返回的server信息,因此需要添加

pymsql_modify_2.png

python3的pyMysql模块会向inception发送SHOW WARNINGS语句,导致inception返回一个"Must start as begin statement"错误。

d0fc7f7b1bfd892bc2f543c22c89a3ad.png

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 test@examle.com

启动 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

不再维护

该项目已不再维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值