登陆界面,登陆是对接了单点sso,单点认证后获取username,根据username的权限,对应显示前端的界面
前端
2.dashboard 显示,包括用户总数、机器总数、受权主机数、当前登陆用户信息、最近登陆信息、报警信息shell
3.每日指标,主要包括天天须要例行检查的服务状态以及业务监控状态数据库
4.部门管理,主要是LDAP对应的cn地址,全部的用户信息都与LDAP打通包括用户的增长及删除,增长用户实现如下几个功能:django
5. 用户管理:后端
增长用户实现如下几个功能:运维
平台用户的增长
ssh
用户的ssh key建立,并拷贝到跳板机上异步
LDAP 用户增长ide
二次认证须要的条形验证码生成,主要是为单点登陆生成google authenticator 二次认证的二维码(基于时间进行验证)google
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