zl程序教程

您现在的位置是:首页 >  其他

当前栏目

运维前线:一线运维专家的运维方法、技巧与实践2.1 CMDB简介

2023-03-09 22:21:52 时间

2章

利用Facter和Django快速构建CMDB

作者简介

陈立军,金山西山居DevOps,原新浪研发系统开发。

刘宇,网名守住每一天,金山西山居架构师,《Puppet实战》一书作者,《Puppet实战手册》译者之一,《Python高级进阶》译者之一,InfoQ社区编辑,自动化运维专家。

CMDB(Configuration Management Database),又称配置管理数据库,更多的时候我们习惯将其称为资产管理系统。它既是ITIL标准体系的核心,又是运维的基础核心系统。它通常位于整个运维自动架构的底层,但在运维自动化体系中,它又起到了极其关键性的作用。据我个人了解目前很多中小型企业,乃至一些中大型互联网公司,都还在采用传统的Excel来管理资产。

采用Excel维护资产时,需要耗费大量的人力和精力,这些工作包括:数据的采集、整合、记录、维护、检验和更新,每一项都比较繁琐。而采用开源CMDB系统却又不够灵活,无法和公司的其他系统相结合。面对这些问题,自行研发一套适用于公司的CMDB系统,是当务之急。

本章将会详细讲解,如何利用开源软件Facter和Django快速构建一个小型的CMDB系统。界面与功能不算复杂,这也是它轻量的体现,本章更多的是提供一种思路,以达到抛砖引玉的作用,仅供大家参考。

本章的所有代码都托管在Github网站上https://github.com/oysterclub/open-cmdb。其中脚本集中在CMDB目录中。

2.1 CMDB简介


CMDB用于存储和管理企业IT架构中各种设备的配置信息,其中包括主机、项目、用户、机房、网络等。其被认为是ITIL服务管理的核心,所有流程所需要使用的配置信息都将通过CMDB来进行获取,例如监控、Dashboard、自动化、流程等。CMDB在企业IT架构中的核心地位如图2-1所示。

 

图2-1 CMDB的核心地位

CMDB特性如下:

设备信息统一化、标准化。

设备信息可维护性更强。

设备信息关系清晰化、可视化。

设备信息的查询、更新更快。

当然,在实际生产中,会对上述特性和涵盖范围有轻重大小的区分,为了能够更加合理、更加准确地设计出适合自有业务模式的CMDB,下面我们来看下几大主流开源CMDB是如何设计的。