基于容器化的CI/CD及自动化运维管理平台,由于定制化开发的原因,使用sso方式登录验证、平台配置文件及依赖底层数据源众多,无法直接部署运行,需要进行二次开发.
别忘了给个star^_^
开发语言与环境依赖
- 编程语言:Python3.6 + HTML + JQuery
- 前端Web框架:Bootstrap4
- 前端图表框架:Pycharts + Datatables
- 后端Web框架:Flask1.0+
- 后端Task框架:apscheduler
- 后端数据库:Mysql + Influxdb + Redis
- 后端日志源:ElasticSearch
- 监控数据源:zabbix
- 后端代码库:gitlab
- 容器化平台:Kubernetes + Docker + Harbor
- 后端编译:jenkins
- 登录鉴权:cas
- 操作系统:CentOS 7+
- Ansible版本:2.6+
- web运行:Nginx + Gunicron
组织框架
sparrow
├── api #api接口
│ ├── ajax_api.py
│ ├── assets_query.py
│ ├── __init__.py
│ ├── k8s_project_update.py
├── conf #配置文件夹
├── conf.py #全局配置
├── index.py #主页面
├── login.py #登录页面
├── logout.py #注销接口
├── main.py #网站入口
├── module #功能模块
│ ├── db_idc.py
│ ├── db_op.py
│ ├── __init__.py
│ ├── ip_adress.py
│ ├── k8s_resource.py
│ ├── loging.py
│ ├── Md5.py
│ ├── MyForm.py
│ ├── Mysql.py
│ ├── produce.py
│ ├── SSH.py
│ ├── Task2.py
│ ├── task_publish.py
│ ├── Task.py
│ ├── tools.py
│ └── user_auth.py
├── operation #管理模块
│ ├── assets_manage.py
│ ├── examine.py
│ ├── __init__.py
│ └── resource_pool.py
├── sso_cas #sso单点登录模块
├── static #静态目录
│ ├── css
│ ├── doc
│ ├── font
│ ├── images
│ ├── js
│ └── webfonts
├── templates #页面模版
└── views #页面视图
├── approval.py
├── app_service.py
├── Assets.py
├── business_m.py
├── business.py
├── chart_center.py
├── deploy.py
├── influxdb_m.py
├── __init__.py
├── k8s_deploy.py
├── k8s_manage.py
├── k8s.py
├── publish.py
├── report.py
├── sch_list.py
└── work_order.py
主要功能:
- 全新架构优化调整
- 由sso单点登录系统进行统一鉴权
- 标准CMDB资产管理
- 代码上线,包含上线、灰度、回滚等功能并实时显示执行过程
- 基于git、jenkins、harbor、k8s容器化实现的CI\CD流水作业
- k8s多集群统一UI管理及容器环境部署、代码更新
- 自动服务器资产、应用服务的信息及关联关系抓取及资产、资源的生命周期管理
- 生产服务资源例如mysql、redis、kafka等信息汇总查询
- WEBSSH登录
- 实时大数据分析包含线上业务的并发量、流量、响应时间、业务访问占比、用户地区分布等
- 安全审查包括登录鉴权记录、用户操作记录、访问记录
- 业务运行关键指标报警、监控报警故障自动处理
- 访问限速、访问黑名单、用户单点登录限制等安全措施
- 页面级别用户权限控制
- 通过分布式全局锁,进程锁,实现多机多进程部署后台单任务运行
— 新增工单系统、工单统计报表功能
界面展示
资产管理
K8s管理
工单系统
日志分析及监控报警
问题解答:
- 关于sql配置文件格式问题,请参考下面示例:
SQLALCHEMY_BINDS = {'库名': 'mysql://用户名:密码@IP地址:端口/库名?charset=utf8'}
SQLALCHEMY_ECHO = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
MYSQL_USER = ''
MYSQL_PASSWORD = ''
MYSQL_HOST = ''
MYSQL_PORT =
INFLUXDB_HOST = ''
INFLUXDB_PORT =
INFLUXDB_USER = ''
INFLUXDB_PASSWORD = ''
INFLUXDB_DB = ''
- 关于启动报Failed to find Flask application or factory in module ‘opweb.conf’报错问题,在最新的版本中已经修复。