cmdb实现三种方式
为什么要做CMDB?
1、实现运维自动化,CMDB是实现运维自动化的基石
2、之前做资产统计的时候,使用execl来统计,为了年底资产审计方便
3、运维日常工作繁琐,
4、运行环境不统一
Agent方式实现
agent方式,可以将服务器上面的Agent程序作为定时任务,定时将资产信息提交到指定API录入到数据库中
本质就是在各个服务器上执行 可以使用python3模块subprocess.getoutput('shell命令'),在本地机器上执行,获取执行结果返回给主机api,然后主机api收到这些数据之后,放入到数据库中,最终通过web界面展示给用户
SSH实现方式(基于Paramiko模块)
中控机通过Paramiko(py模块)登录到各个服务器上,然后执行命令的方式去获取各个服务器上的信息
Saltstack方式
此方案本质上和ssh实现方式大致一样,中控机在发送命令给服务器执行,服务器将结果放入另一个队列中,中控机获取将服务器信息发送到api,api将数据整理后录入数据库
Agent实现方式
优点:速度快
缺点:需要为每台服务器部署一个Agent程序
ssh实现方式
优点:不需要在需要在服务器上安装Agent
缺点:速度慢
saltstack方式:
优点:快、开发成本低
缺点:依赖第三方工具