码迷,mamicode.com
首页 > 其他好文 > 详细

运维自动化平台

时间:2017-12-15 16:19:24      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:自动化运维平台 cmdb

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

  • 技术分享图片

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

            技术分享图片

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

            技术分享图片

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

            技术分享图片

    5. 用户管理:

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

      • 平台用户的增加

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

      • LDAP 用户增加

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

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

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


    • 用户角色

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

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

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


    • 删除用户实现功能

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

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

      • 删除用户ssh key

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

      • 删除用户二维码

      • LDAP删除用户

      • 平台删除用户

    • 用户组

      • 提供用户检索功能

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

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


      技术分享图片

      技术分享图片

            技术分享图片

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


            技术分享图片

            技术分享图片

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

    • 机器管理实现功能

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


    • 机器分组实现功能

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

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

        技术分享图片

        技术分享图片

              机器组列表:


            技术分享图片        

    7.授权管理

    • ECS 登录授权

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

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

    • Sudo 授权

      • 对用户及用户组授权

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


     ECS授权列表:

            技术分享图片

      ECS 授权添加:

            技术分享图片

      sudo 授权添加:

            技术分享图片

    8.自动化管理

    • 任务操作

      • 远程主机单机命令执行

      • 远程主机脚本执行

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

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

    • 机器初始化   

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

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

        机器初始化命令:

          技术分享图片     

      命令组合成模版:

            技术分享图片

     机器初始化:

          技术分享图片

     机器初始化列表:

            技术分享图片

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

         技术分享图片

    任务执行模块:

       单一命令

       技术分享图片

    shell 脚本

        技术分享图片

    任务执行列表:

        技术分享图片

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

        技术分享图片

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

        登录日志:

       技术分享图片

     操作日志:

        技术分享图片

    10.审批管理

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

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

    • 邮件组申请

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

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

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



        申请列表:

        技术分享图片

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

       技术分享图片

           权限申请列表:

            技术分享图片

    11.值班管理

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

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

        日常值班列表:

            技术分享图片

       节假日值班添加:

            技术分享图片

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

            技术分享图片


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

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

    运维自动化平台

    标签:自动化运维平台 cmdb

    原文地址:http://blog.51cto.com/12113362/2051070

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!