CMDB 是什么
资产管理系统, CMDB 是自动化运维体系的基石 有了资产管理系统,后面各种标准、流程都可以建立在 CMDB 基础之上,从而实现真正的标准化、自动化、智能化运维,节约运维成本的同时,也降低运维流程混乱带来的操作风险。
CMDB场景
1.代码需要上线 系统把代码提交给cmdb; cmdb在各个服务器上部署
2.监控服务器
后台用Python去做, 收集一下服务的元信息(IP地址, 硬盘大小, 内存)
前台配合kibana
3.装机服务
服务的元信息 IP地址
4.年底统计
通过cmdb去各台服务器上找
开发CMDB的思路和大概做法:
- 使用Python代码执行linux的命令, 并且获取服务器上的对应信息
- 使用Http协议发送执行好的数据
CMDB 模式
agent模式
优点:速度快
缺点:每次都需要部署
场景 :适合实时传递数据的场景 比如把服务器CPU 什么的元信息同步给API
服务器数量特别多的情况 (如果使用ssh 需要安排发起请求 后面才能拿到结果)
SSH模式
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='c1.salt.com', port=22, username='root', password='123') # 执行命令 stdin, stdout, stderr = ssh.exec_command('df') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close()
salt-stack
1. 安装salt-master yum install salt-master 2. 修改配置文件:/etc/salt/master interface: 0.0.0.0 # 表示Master的IP 3. 启动 service salt-master start """ slave端: """ 1. 安装salt-minion yum install salt-minion 2. 修改配置文件 /etc/salt/minion master: 10.211.55.4 # master的地址 或 master: - 10.211.55.4 - 10.211.55.5 random_master: True id: c2.salt.com # 客户端在salt-master中显示的唯一ID 3. 启动 service salt-minion start
salt-key -L # 查看已授权和未授权的slave salt-key -a salve_id # 接受指定id的salve salt-key -r salve_id # 拒绝指定id的salve salt-key -d salve_id # 删除指定id的salve
#linux 命令行调用
salt 'c2.salt.com' cmd.run 'ifconfig'
#python调用
import salt.client local = salt.client.LocalClient() result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])