CMDB的四种模式
为什么要有CMDB?
CMDB --Configuration Management Database 配置管理数据库.
1.为了实现资产的自动采集,资产的自动更新,
为了搭建公司自动化平台的基础则需要资产的管理.
2.优点减少了人工干预,降低人员成本.
CMDB三种工作方式
1.Agent

Agent工作流程:
1.首先在每台服务器都装上agent. agent定时执行指令
2.agent将处理过的数据通过requests发给API
3.再由API更新到数据库中.
Ageng优点:
速度快;
缺点:
每一台服务器都需要Agent
2.ssh类

ssh类的工作方式:
1.资产采集器(中控机)先向API获取未采集的服务器列表
2.中控机通过paramiko模块里的ssh远程连接到服务器.(主机名,密码,命令)获取服务器的数据
3.获取完所有未采集的服务器后,将数据发送给API.
优点:无agent
缺点:速度慢
适合用在服务器少的情况下.
3.salt-stack

salt-stack流程:
1.安装了saltstack-master的中控机先去API获取未采集的主机名列表.
2.通过RPC的模式来获取数据.
(RPC模式:
将主机名,密码,命令放在a消息队列里
装有salstack-slave的服务器会去a消息队列里拿命令,检查是否是自己需要执行的.
服务器执行完命令后将数据放在b消息队列里,中控机去b消息队列里获取数据
zeromq软件)
3.将获取的数据发送给API,API存数数据库.
优点:速度快,开发成本低
缺点:依赖saltstack
4.puppet
1.要用ruby写.
2.有点自动汇报数据
缺点:必须用ruby
为什么要有API
1.提供接口.系统调用数据的时候,提供接口.不让外界直接接触数据库
2.对提交的数据进行统一化的管理.
3.比较安全.如果没有API如果服务器给黑了,可能会把数据库删表.
连接API的安全认证
1.API和服务器端各有一个相同的key
2.当服务器端想连接API的时候,将key进行md5加密,发给API
APi的key也进行MD5加密,两个密文对比.,相同则代表通过.
?存在问题. 如果这个key给别人截取了,那么其他的人就可以向API发无用的数据.
3.那么就让key动态起来,我利用了本地的时间和key组合成一个字符串,用md5加密同时也要将本地的时间发给API
因为API接收到的时间会延迟. 然后APIkey和服务端的时间,md5加密 然后两个密文对比.
?存在问题,发现有更多的key可以进入到API
4.将第一次发送的密文放在一个列表里.第二次判断是否在该列表里,在则登录失败.
?那么需要存放的密文很多
5.失效.让服务器发的这个key10秒钟后时间,每次密文判断之前,先判断是否超时了.
清空失效的密文
def api_auth_method(request):
auth_key = request.META.get('HTTP_AUTH_KEY')
if not auth_key:
return False
sp = auth_key.split('|')
if len(sp) != 2:
return False
encrypt, timestamp = sp
timestamp = float(timestamp)
limit_timestamp = time.time() - ASSET_AUTH_TIME
print(limit_timestamp, timestamp)
if limit_timestamp > timestamp:
return False
ha = hashlib.md5(ASSET_AUTH_KEY.encode('utf-8'))
ha.update(bytes("%s|%f" % (ASSET_AUTH_KEY, timestamp), encoding='utf-8'))
result = ha.hexdigest()
print(result, encrypt)
if encrypt != result:
return False exist = False
del_keys = []
for k, v in enumerate(ENCRYPT_LIST):
print(k, v)
m = v['time']
n = v['encrypt']
if m < limit_timestamp:
del_keys.append(k)
continue
if n == encrypt:
exist = True
for k in del_keys:
del ENCRYPT_LIST[k] if exist:
return False
ENCRYPT_LIST.append({'encrypt': encrypt, 'time': timestamp})
return True
CMDB的四种模式的更多相关文章
- Hibernate 查询MatchMode的四种模式
Hibernate 查询MatchMode的四种模式 MatchMode.START:字符串在最前面的位置.相当于"like 'key%'" MatchMode.END:字符串在最 ...
- Android 文件访问权限的四种模式
Linux文件的访问权限* 在Android中,每一个应用是一个独立的用户* drwxrwxrwx* 第1位:d表示文件夹,-表示文件* 第2-4位:rwx,表示这个文件的拥有者(创建这个文件的应用) ...
- 对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
一. AES对称加密: AES加密 分组 二. 分组密码的填充 分组密码的填充 e.g.: PKCS#5填充方式 三. 流密码: 四. 分组密码加密中的四种模式: 3.1 ECB模式 优点: 1. ...
- Asp.net的sessionState四种模式配置方案
sessionState节点的配置 web.config关于sessionState节点的配置方案,sessionState有四种模式:off,inProc,StateServer,SqlServer ...
- OAuth2简易实战(一)-四种模式
1. OAuth2简易实战(一)-四种模式 1.1. 授权码授权模式(Authorization code Grant) 1.1.1. 流程图 1.1.2. 授权服务器配置 配置授权服务器中 clie ...
- LVS 原理(调度算法、四种模式、四层负载均衡和七层 的区别)
参考文档:http://blog.csdn.net/ioy84737634/article/details/44916241 目录 lvs的调度算法 lvs的四种模式 四层均衡负载和七层的区别 1.l ...
- AES加密的四种模式详解
对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密: A ...
- 第164天:js方法调用的四种模式
js方法调用的四种模式 1.方法调用模式 function Persion() { var name1 = "itcast", age1 = 19, show1 = functio ...
- 小知识:SPI四种模式区别【转】
转自:http://home.eeworld.com.cn/my/space-uid-80086-blogid-119198.html spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以 ...
随机推荐
- PHP empty()函数说明---用了N遍了就是记不住
从表面上看,很容易误解empty()函数是判断字符串是否为空的函数,其实并不是,我也因此吃了很多亏. empty()函数是用来测试变量是否已经配置.若变量已存在.非空字符串或者非零,则返回 false ...
- 转: 使用 Velocity 模板引擎快速生成代码
from:https://www.ibm.com/developerworks/cn/java/j-lo-velocity1/ 评注: 1. velocity 的基本语法 2. 生成代码的用法.
- Python - 连续替换(replace)的正則表達式(re)
字符串连续替换, 能够连续使用replace, 也能够使用正則表達式. 正則表達式, 通过字典的样式, key为待替换, value为替换成, 进行一次替换就可以. 代码 # -*- coding: ...
- 阻止右键菜单(阻止默认事件)&&跟随鼠标移动(大图展示)&&自定义右键菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Spring IOC源代码具体解释之容器初始化
Spring IOC源代码具体解释之容器初始化 上篇介绍了Spring IOC的大致体系类图,先来看一段简短的代码,使用IOC比較典型的代码 ClassPathResource res = new C ...
- 堆排序算法的java实现
堆积排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素.堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O ...
- Apache安全和强化的十三个技巧
Apache是一个很受欢迎的web服务器软件,其安全性对于网站的安全运营可谓生死攸关.下面介绍一些可帮助管理员在Linux上配置Apache确保其安全的方法和技巧. 本文假设你知道这些基本知识: 文档 ...
- iOS swift 给MBProgressHUD添加分类
MBProgressHUD在开发中经常会用到,今天把MBProgressHUD的方法拓展了一下,更加方便使用 1.可以实现gif图片的展示,使用时请替换test.gif 2.可以控制是否允许交互,如果 ...
- 《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置
在学习完第三章后(第三章提供的web应用是helloaapp,我将其放到了tomcat/webapps中),对Context元素的作用理解不深:但是当进入第四章后,发现第四章提供的源码包中也有一个叫h ...
- Apache中KeepAlive 配置
引子 先来分析一个Yslow 测试的一个页面的前端性能. 这里所有的请求是指http请求,对于一个请求各个阶段的划分,阻挡->域名解析->建立连接->发送请求->等待响应-&g ...