CMDB的全称解释为:配置管理系统
企业中实现CMDB的四种实现方式:
1. 使用agent脚本
缺点: 每台服务器都要放置agent
优点: 速度快
使用场景: 服务器比较多的时候
2. 使用ssh类完成(在python中使用paramiko模块来实现)
缺点: 有一个中控机, 速度慢
使用场景: 服务器比较少的时候
3. 使用salt-stack完成
使用场景: 公司已经使用salt-stack软件 安装salt-master: yum install salt-master 配置配置文件: interface : 本机IP service salt-master start 安装 salt-minion: yum install salt-minion 配置文件配置: master: 10.0.0.51 salt-key -L: 列出所有的minion主机 salt "主机名" cmd.run "命令" :
4. 使用puppet实现 (不怎么使用)
代码实现:
这里使用到类中的反射用法,拿到想要的数据
from conf import config from . import global_settings class Settings(): def __init__(self): ##整合全局配置文件 for k in dir(global_settings): #拿到global_settings的文件内的数据,使用dir, if k.isupper(): #因为dir得到还有内置的字典形式,所以想要的内容都大写表示 v= getattr(global_settings,k) #这里就用到了反射, 通过k值 得到 value的值 setattr(self,k,v) #反射为值添加新的数据 #这里吧自定义的放在下面因为执行是从上往下,这样的话不会不会被替换掉 for k in dir(config): if k.isupper(): v = getattr(config,k) setattr(self,k,v) settings= Settings()