CMDB实现的3种方式(agent,ssh,saltstack,)

2 篇文章 0 订阅
1 篇文章 0 订阅

Agent实现方式

简言之:Angent方式,本质就是服务器上自己跑subprocess.getoutput(‘命令’),获取关键信息,再将信息返回给API,主机API接收到消息后经过处理,将数据存入数据库,最终通过web界面展现给用户
图示:
在这里插入图片描述
优点:速度快
缺点:需要为每台服务器部署一个Agent程序,
适合服务器较多(>100台)的情况

ssh类的实现方式

本质:基于paramiko模块,需要一台中控机

实现方式:

中控机通过paramiko模块,登录到各个服务器,然后执行linux命令,获取各个服务器的信息,再将信息返回给API,主机API接收到消息后经过处理,将数据存入数据库,最终通过web界面展现给用户

图解:

在这里插入图片描述
优点:不需要Agent,无需部署
缺点:速度慢,中控机连接速度慢
适合服务器较少(<100台)的情况

saltstack

本质:此方案的实现流程和第二种ssh类的实现差不多的流程,中控机发送命令给服务器执行,服务器将结果放到一个队列中,中控机从队列中获取信息,再将信息发送到API中进而录入数据库,最后通过web展示给用户

实现方式:借助第三方工具saltstack

优点: 快,开发成本低
缺点:依赖第三方工具
适用场景:服务器上已经部署了salt-stack或者想要使用salt-stack的企业
图示
在这里插入图片描述

1、安装和配置
master端:

1、安装salt-master

yum install salt-master -y

如果无法安装请先安装源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2、修改配置文件:

vim /etc/salt/master
interface:0.0.0.0 修改为本机的ip地址

3、启动服务

service salt-master start

4、查看进程是否启动

ps aux | grep salt
slave端

1、安装salt-minion

yum install salt-minion -y

如果无法安装请先安装源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2、修改配置文件:

vim /etc/salt/minion
master:0.0.0.0 修改为的master地址

3、启动服务

service salt-minion start

4、查看进程是否启动

ps aux | grep salt
2 授权
salt-key -L        # 查看已授权和未授权的slave
salt-key -a slave_id     #接收指定id的slave,(hostname即可)
salt-key -r slave_id      #拒绝指定id的slave
salt-key -d slave_id     #删除指定id的slave
salt-key -A                  # 接收所有的申请slave
3、执行命令

在master服务器上对slave进行远程操作

salt ' slave_hostname' cmd.run ‘命令'

基于API的方式

import salt.client
local = salt.client.LocalClient()
result = local.com('c2.salt.com'', 'cmd.run', ['ifconfig'])

Puppet(ruby语言开发)

每隔30分钟,通过RPC消息队列将执行的结果返回给用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值