资产信息之收集资产代码流程,API的一个认证,数据库表的设计
收集资产代码流程
1.起初我们些的代码是面条式的一堆的逻辑判断。
后来通过了不断的优化升级实现了一个3种方案都支持的CMDB系统,我们用哪种方案只需要在配置文件里修改一下设置就行了。
同时我们借鉴了django的中间件设置还实现了可插拔式的功能,这个可插拔式针对的是我们要收集的某些硬件信息,只需要注释一下,就可以达到不用搜集了。
2.流程: 1.settings: MODE----->确定哪种方案(【3个方案py文件】)
确定哪种脚本(【agent脚本,ssh(paramiko),saltstack】)本质功能调命令行
可插拔配置---->(需要收集的硬件信息【每个硬件1个py文件】)
MODE='agent' #方案一 'agent', 方案二 'ssh',方案三 'salt' DEBUG=True
#可插拔配置
PLUGINS_DICT={
'basic':'src.data.basic.Basic',
'board':'src.data.board.Board',
'cpu':'src.data.cpu.Cpu',
'disk':'src.data.disk.Disk',
'memory':'src.data.memory.Memory',
# 'nic':'src.data.nic.Nic',
}
2.for循环硬件配置,传入方法:执行相应硬件的linux命令 拿到我们需要收集的信息
{'basic': {'status': 10000, 'data': {'os_platform': 'linux', 'os_version': 'CentOS release 6.6 (Final)\nKernel \r on an \\m', 'hostname': 'c2.com'}}}
#注意:ssh(hostme 密钥或服务器用户名密码 ),salt方式只需要hostname
#我写了一个类方法来for循环配置文件,一个方法拿到脚本方法 ,init定义了hostname,root,pwd等
API的一个认证
token认证:
过滤2部分:1.无关的请求 2.用户请求
token格式 asadasdasd|1321151.21312
通过格式过滤
通过time时间设置token的有效时间
通过随机字符串认证token
通过了 存入redis(无限存?)只允许登陆1次设置过期时间
AES数据加密
1.pip3 install pycrypto
2.pip3 install wheel
3.https://github.com/sfbahr/PyCrypto-Wheels 下载pycrypto-2.6.1-cp35-none-win32
4.cd 到下载目录 pip3 install pycrypto 安装
win系统AES加密模块安装
from Crypto.Cipher import AES
def encrypt(message):
key = b'dfdsdfsasdfdsdfs'
cipher = AES.new(key, AES.MODE_CBC, key)
ba_data = bytearray(message,encoding='utf-8')
v1 = len(ba_data)
v2 = v1 % 16
if v2 == 0:
v3 = 16
else:
v3 = 16 - v2
for i in range(v3):
ba_data.append(v3)
final_data = ba_data
msg = cipher.encrypt(final_data) # 要加密的字符串,必须是16个字节或16个字节的倍数
return msg
def decrypt(msg):
key = b'dfdsdfsasdfdsdfs'
cipher = AES.new (key, AES.MODE_CBC, key)
result = cipher.decrypt (
msg) # result = b'\xe8\xa6\x81\xe5\x8a\xa0\xe5\xaf\x86\xe5\x8a\xa0\xe5\xaf\x86\xe5\x8a\xa0sdfsd\t\t\t\t\t\t\t\t\t'
data = result[0:-result[-1]]
return str (data, encoding='utf-8')
AES加密
数据库表设计

资产信息之收集资产代码流程,API的一个认证,数据库表的设计的更多相关文章
- 【翻译】Flink Table Api & SQL —Streaming 概念 ——动态表
本文翻译自官网:Flink Table Api & SQL 动态表 https://ci.apache.org/projects/flink/flink-docs-release-1.9/de ...
- Python调用ansible API系列(一)获取资产信息
你想让ansible工作首先就需要设置资产信息,那么我们如何通过使用Python调取Ansible的API来获取资产信息呢? 要提前准备一个hosts文件 获取组或者主机 #!/usr/bin/env ...
- Zabbix探索:资产信息的妙用
前一阵子还在考虑CMDB的问题,因此Zabbix中的Inventory,也就是所谓的资产信息,遭到了我的不少鄙视. 这几天在研究告警通知对应责任人的问题,突然想起Zabbix的资产信息中应该有这么一栏 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- Django项目:CMDB(服务器硬件资产自动采集系统)--03--03CMDB信息安全API接口交互认证
#settings.py """ Django settings for AutoCmdb project. Generated by 'django-admin sta ...
- Zabbix使用python批量添加主机及主机资产信息-从零到无
- - 时间:2020年11月10日 - - 作者:飞翔的小胖猪 前言: 使用zabbix作为基础环境的监控系统时,面对现网在用的2000+台把这些主机添加到zabbix监控中是一个问题,当然zabb ...
- Oracle的自动统计信息不收集直方图的信息
Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...
- Oracle自动统计信息的收集原理及实验
[日期:2014-11-21]来源:Linux社区 作者:stevendbaguo[字体:大 中 小] 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATH ...
- 当前机器的各种进程、服务信息的收集(win)
当前机器的各种进程.服务信息的收集(win) 前言 我们在做渗透测试的过程中,遇到Windows系统的环境是最多的,然而在拿到一台Windows胸膛呢权限之后,我们要进行横向渗透测试或者纵向渗透测试, ...
随机推荐
- Photoshop给人像加上个性裂纹肌肤
1.打开人物及纹理素材图片,把素材图片拖到人物图片里面,适当降低图层不透明度. 2.选择菜单:编辑 > 变形 > 自由变形,使纹理位置合适,然后确定. 3.用橡皮工具擦除多余的地方. 4. ...
- keras04 - 阿狗阿猫识别 面向对象编程
参考:https://www.bilibili.com/video/av32756783
- 转:SVN 版本服务器搭配全过程详解(含服务端、客户端)
1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Serve ...
- LogHelper 日志
public class LogHelper : Abp.Domain.Services.DomainService { public static void Debug(object message ...
- Win10开机“提示语音”以及”随机播放音乐”
1.在桌面建立一个.txt文件 2.把一下代码拷贝进去: RandomizeCreateObject("SAPI.SpVoice").Speak"先生,为你播放一首mus ...
- CF 543C Remembering Strings
https://cn.vjudge.net/problem/CodeForces-543C 题目 You have multiset of n strings of the same length, ...
- hdu P3374 String Problem
今天又在lyk大佬的博客学会了——最小表示法(异常激动发篇题解纪念一下说在前面:给luogu提个建议最小表示法的题太少了,都被hdu抢去了!!! 我们先看一下题目 看完后可以用一个字概括——蒙,两个字 ...
- Java定义三个点Object...
从Java 5开始,Java语言对方法参数支持一种新写法,叫 可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]. public ...
- BackGround
- 关于bytes和bytearray
背景 平时工作因为有批量线上数据进行更新,通过Python程序连接数据库,利用连接池和gevent的并发性能,处理大量数据. 因为数据方提供的数据表结构中带有varbinary类型字段,并非全部,所以 ...