python cmdb_CMDB管理系统

CMDB管理系统

发布时间:2018-12-13 08:24:10编辑:admin阅读(5397)

说明

CMDB管理系统,基于Ansible最新版开发,采用前后端分离架构

项目主要结构./

├── ansible_client  # ansible_client客户端

│   └── monitor

│       ├── cpu.py  # 监控cpu

│       └── memory.py  # 监控内存

├── api  # api部分

│   ├── api_urls.py  # api相关的url

│   ├── serializers  # 序列化相关

│   │   ├── ansible.py  # ansible

│   │   ├── disk.py  # 磁盘

│   │   ├── hostinfo.py  # 主机详细信息

│   │   ├── host.py  # 主机信息

│   │   └── network.py  # 网络信息

│   ├── utils

│   │   ├── ansible  # ansible相关

│   │   │   ├── check_ip.py  # 检测ip可用性

│   │   │   ├── exec_ansible.py  # ansible的API,用来执行ansible命令

│   │   │   ├── extract_setup.py  # 检测硬件信息

│   │   │   ├── hosts_fm.py  # ansible的hosts文件写入

│   │   │   ├── login_host.py  # 远程登录主机

│   │   │   └── remotExect.sh  # 输入密码

│   │   ├── auth.py  # 认证

│   │   ├── response.py  # 统一code返回值

│   │   └── serialization_general.py  # 标准序列化返回值

│   └── views

│       ├── ansible.py  # ansible相关

│       ├── disk.py  # 磁盘相关

│       ├── hostinfo.py  # 主机详情

│       ├── host.py  # 主机

│       ├── monit  # 监控相关

│       │   ├── cpu.py

│       │   └── memory.py

│       └── network.py  # 网卡相关

├── AutoCmdb

│   ├── settings.py  # 项目配置文件

│   ├── urls.py  # 总入口

├── cron

│   └── test_orm.py  # 测试脚本

├── db.sqlite3  # 数据库

├── manage.py  # 启动文件

├── README.md

├── repository

│   └── models.py  # 数据库文件

└── web  # 前端展示部分

├── static  # 静态目录

│   ├── css

│   ├── img

│   ├── js

│   └── plugins

│       ├── bootstrap-3.3.7  # bootstrap

│       ├── font-awesome-4.7.0  # 图标库插件

│       ├── Highcharts-6.1.2  # 图表插件

│       └── sweetalert  # 弹框插件

├── templates  # 模板相关

│   ├── ansible_add_host.html  # 添加ansible主机

│   ├── ansible_add.html  # 添加ansible组

│   ├── ansible_list.html  # ansible列表

│   ├── base.html  # 母版

│   ├── default.html  # 默认首页的右侧部分

│   ├── host_info.html  # 主机详情

│   ├── host_list.html  # 主机列表

│   ├── index.html  # 首页主体部分,包含左侧边栏和头部

│   └── monitor  # 监控图表相关

│       ├── cpu.html

│       └── memory.html

├── views

│   ├── ansible.py  # ansible相关

│   ├── host.py  # 主机相关

│   └── index.py

└── web_urls.py  # web页面相关路由

运行环境

ProjectversionDescriptionpython3.6.5无

django1.11.15必须此版本

djangorestframework3.8.2无

ansible2.7.0不能低于此版本

功能说明以下功能,都是用python来完成的

1.  使用django rest framework开发api

2.  优雅获取本机IP

3.  判断ip地址是否有效

4.  判断ssh端口是否开放

5.  自动使用yum安装软件

6.  自动完成ssh免密码登录

7.  根据数据库记录的变化,自动写入文件/etc/ansible/hosts

8.  使用ansible 2.x API收集客户端硬件信息

9.  根据返回的硬件信息,使用事务写入数据库中

10. 使用psutil模块获取cpu和内存使用情况,并发送给后端API,统一入库.

11. 使用Highcharts插件来展示监控图表,比如: cpu和内存.

效果

首页:

ansible管理:

ansible主机:

主机详情:

运行方式

ansible主控端

首先需要编译安装python3,请参考链接:

http://www.py3study.com/Article/details/id/320.html

做到添加豆瓣源为止,请务必按照本教程操作,否则会出现没有pip3的问题!!!

安装2个系统软件

yum install -y ansible expect

安装python相关模块

pip3 install django==1.11.15

pip3 install djangorestframework

pip3 install ansible

或者使用requirements.txt文件安装相关模块

pip3 install -r requirements.txt

最后切换到项目目录,使用以下命令运行

python3 manage.py runserver 0.0.0.0:8000

ansible被控端

编译安装python3,参考上面的操作!

注意:被控端不需要安装ansible!!!

安装python相关模块

pip3 install requests psutil

将项目中的ansible_client拷贝到opt目录中

注意:务必修改cpu.py和memory.py中的ip地址

设置linux任务计划:

# 监控cpu和内存

* * * * * python3 /opt/ansible_client/monitor/cpu.py

* * * * * python3 /opt/ansible_client/monitor/memory.py

网页操作

请务必安装以下操作进行:

访问页面: http://ip地址/web/

注意:必须使用谷歌浏览器访问,360浏览器可能某些数据无法加载!

1. 进入首页,点击左侧ansible管理。必须先添加组

2. 添加组之后,再点击添加主机

3. 最后点击左侧ansible主机,就可以查看主机详情和监控图表了

备注

本项目只是一个demo,请勿直接用于生产环境!

github地址:

关键字:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值