1. 登录界面,登录是对接了单点sso,单点认证后获取username,根据username的权限,对应显示前端的界面

0.png

2.dashboard 显示,包括用户总数、机器总数、授权主机数、当前登录用户信息、最近登录信息、报警信息

        3.png

3.每日指标,主要包括每天需要例行检查的服务状态以及业务监控状态

        2.png

4.部门管理,主要是LDAP对应的cn地址,所有的用户信息都与LDAP打通包括用户的增加及删除,增加用户实现以下几个功能:

        3.png

5. 用户管理:

  • 增加用户实现以下几个功能:

    • 平台用户的增加

    • 用户的ssh key创建,并拷贝到跳板机上

    • LDAP 用户增加

    • 二次认证需要的条形验证码生成,主要是为单点登录生成google authenticator 二次认证的二维码(基于时间进行验证)

    • google authenticator 二次认证登录跳板机的密钥文件生成

    • 通过钉钉接口获取用户的电话号码及中文名字


  • 用户角色

    • 主要有运维人员,超级用户,管理员,普通用户

    • 前端可以根据不同的角色显示不同

    • 后端主要是用装饰器实现用户权限的管理


  • 删除用户实现功能

    • 删除用户时,判断用户是否属于某个组,若属于则提示先移除组再删除用户

    • 删除用户的ECS登录权限及sudo权限

    • 删除用户ssh key

    • 删除用户google authenticator 二次认证登录跳板机的密钥文件

    • 删除用户二维码

    • LDAP删除用户

    • 平台删除用户

  • 用户组

    • 提供用户检索功能

    • 组对应的ECS机器有登录权限或sudo权限,当某个用户增加到这个组下,也会赋予相应的权限

    • 当从某个组移除用户时,用户组及用户对应的ECS机器有登录权限和sudo权限,都会被移除


4.png

5.png

        6.png

        点击成员数目,可以查看组下的具体成员信息


        7.png

        8.png

6.资产管理,主要包括机器管理和机器组管理

  • 机器管理实现功能

    • 机器信息通过阿里云API接口获取,并通过django-celery 的beat 定时同步主机信息,也可以手动同步机器信息


  • 机器分组实现功能

    • 机器组对应的用户及用户拥有的ECS登录权限及sudo权限,当某个机器加到此组下时,也会对应的用户也会拥有此机器的ECS登录权限及sudo权限

    • 从组中移除机器时,删除用户的登录权限及sudo权限

    9.png

    10.png

          机器组列表:


        11.png        

7.授权管理

  • ECS 登录授权

    • 对用户及用户组进行登录授权

    • 拷贝用户的公钥文件到授权主机,实现ssh 免密登录

  • Sudo 授权

    • 对用户及用户组授权

    • sudo授权主要是将用户加到某个用户组下,用户组的权限在机器初始化的时候,维护sudoers文件,对应拥有的权限


 ECS授权列表:

        12.png

  ECS 授权添加:

        13.png

  sudo 授权添加:

        14.png

8.自动化管理

  • 任务操作

    • 远程主机单机命令执行

    • 远程主机脚本执行

    • 较长命令及脚本支持后台执行

    • 后台执行功能主要是celery 异步任务执行,返回执行结果

  • 机器初始化   

    •  机器初始化主要用ansible 批量初始化

    • 机器模版由多条ansible命令执行

    机器初始化命令:

      15.png     

  命令组合成模版:

        16.png

 机器初始化:

      17.png

 机器初始化列表:

        18.png

实时查看执行初始化日志:

     19.png

任务执行模块:

   单一命令

   22.png

shell 脚本

    23.png

任务执行列表:

    20.png

 执行结果查看,也可以下载

    21.png

9.审计日志,包括登录日志及平台操作日志

    登录日志:

   25.png

 操作日志:

    26.png

10.审批管理

  • 资源(ECS,RDS,SLB,MNS.MogoDB,Redis等)申请、释放、变更配置的申请审批

  • 权限申请(ECS登录,sudo权限,应用平台,数据库白名单等)和释放

  • 邮件组申请

  • 数据库变更申请(数据库修改数据,更改表结构,申请用户权限)

  • 所有的审批对接钉钉API接口,审批人一般为2人,包括leader及运维人员,抄送个部门负责人   

  • ECS登录、Sudo、应用平台实现自动授权,定时任务检查钉钉审批状态,审批通过之后,自动实现权限赋予,应用平台通过API接口实现



    申请列表:

    27.png

  ECS 资源申请,其他的申请图就不一一列出

   28.png

       权限申请列表:

        29.png

11.值班管理

    • 日常值班,可以按天或按周来进行值班轮循

    • 节假日值班,选择具体值班人员,确定值班范围,按天来进行轮询值班

    日常值班列表:

        30.png

   节假日值班添加:

        4.png

  根据添加的值班信息展示:

        31.png


由于代码涉及到公司隐私信息,就不开源啦,前端代码使用的模版可以在百度云盘下载:

    https://pan.baidu.com/s/1gfB2KPP