Skip to content
MengBo Li edited this page Oct 14, 2019 · 22 revisions

资产管理

cmdb

  • 一个极简的CMDB
  • 资产自动采集
  • 产品管理
  1. 包含应用层服务管理
  2. 按产品生成架构图
  • 业务环境
  • 地区管理
  • 平台管理
  • IDC

作业管理

  • 脚本管理
  1. 支持脚本类型(sh,py,bat)
  2. 可以查看更新历史,历史修改的版本代码对比
  3. 支持脚本参数 $1 $2 ....
  • 计划任务
  1. 类似Linux crontab
  2. 支持周期任务和定时任务
  3. 对指定资产定时运行单个脚本
  4. 对指定资产定时运行编排任务
  • 调度管理
  1. 按周期
  2. 按计划
  • 任务编排
  1. 目前只支持脚本编排
  • 文件分发
  • 批量执行脚本
  • 批量执行命令
  • 批量执行任务

日志审计

  • 改密日志
  • 登陆日志
  • 请求日志
  • 作业日志

系统设置

  • 用户管理
  1. 使用邮箱地址作为登陆名
  2. 用户权限包含(查看、执行、删除),管理员拥有最高权限
  3. 用户角色用于控制路由访问和菜单
  • 部门管理
  1. 未来或许有用
  • 项目管理
  1. 不能跨项目操作,整体功能根据项目进行授权
  • 权限管理
  1. 这里显示一级菜单权限、二级菜单权限和路由权限
  2. 路由支持泛匹配
  3. 支持特定路由权限控制
  • 角色管理
  1. 这里绑定权限,一个角色可以有多个菜单和路由权限
  • 密钥管理
  1. 这里填写密钥,关联项目,批量任务可以选择这里的密钥进行操作
  2. 支持普通用户密钥,同一项目服务器可能存在多人维护的场景

未来开发计划

  • webterminal
  • 持续集成
  • 灰度发布
  • 反向代理
  • 工单系统
  • 内容管理
  • 运维应用
  • DB管理
  1. 常用工作流程在线化管理审核,通知
  2. 上线工单
  3. 资源申请工单
  • SQL审核(待开发)
  1. SQL查询
  2. SQL上线
  3. SQL优化(SQLAdvisor、SOAR、MySQLTuning)
  4. 数据库审核
  5. 权限分配

问题集锦

  1. Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED.
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED' at line 1")

解决办法: setting.py--->DATABASES 添加,建议使用MySQL 5.6+

'OPTIONS':{'isolation_level':None}
  1. celery 4.2 过期或者撤销任务崩溃的问题为celery Bug,将在在4.3版本修复
pip install celery==4.3.0rc1
  1. 关于国际化问题,由于精力有限可自行修改翻译文件
  • 国际化文件生成
django-admin makemessages -l en
  • 修改opensa/locale/en/LC_MESSAGES/django.po

  • 编译一下,这样翻译才会生效

django-admin compilemessages
  1. OperationalError(2006, 'MySQL server has gone away')
  • 设置 'CONN_MAX_AGE': 60 ,并不能解决问题
  • 本地修改store_result():site-packages/django_celery_results/managers.py#L87
def store_result(self, content_type, content_encoding,
                 task_id, result, status,
                 traceback=None, meta=None):
    """Store the result and status of a task.
    """
    fields = {
        'status': status,
        'result': result,
        'traceback': traceback,
        'meta': meta,
        'content_encoding': content_encoding,
        'content_type': content_type,
    }
    
    #Fix temporary (2006, 'MySQL server has gone away')
    from django.db import close_old_connections
    close_old_connections()

    obj, created = self.get_or_create(task_id=task_id, defaults=fields)
    if not created:
        for k, v in items(fields):
            setattr(obj, k, v)
        obj.save()
    return obj
  1. 解决安装python3.7后YUM无法使用
  • 打开/usr/bin/yum
  • 将#!/usr/bin/python 修改为 #!/usr/bin/python2.6,保存退出
  • 测试是否修复 yum list
Clone this wiki locally