收集资产代码流程

  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的一个认证,数据库表的设计的更多相关文章

  1. 【翻译】Flink Table Api & SQL —Streaming 概念 ——动态表

    本文翻译自官网:Flink Table Api & SQL 动态表 https://ci.apache.org/projects/flink/flink-docs-release-1.9/de ...

  2. Python调用ansible API系列(一)获取资产信息

    你想让ansible工作首先就需要设置资产信息,那么我们如何通过使用Python调取Ansible的API来获取资产信息呢? 要提前准备一个hosts文件 获取组或者主机 #!/usr/bin/env ...

  3. Zabbix探索:资产信息的妙用

    前一阵子还在考虑CMDB的问题,因此Zabbix中的Inventory,也就是所谓的资产信息,遭到了我的不少鄙视. 这几天在研究告警通知对应责任人的问题,突然想起Zabbix的资产信息中应该有这么一栏 ...

  4. 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 重点: 实现多级子目录的压缩, ...

  5. Django项目:CMDB(服务器硬件资产自动采集系统)--03--03CMDB信息安全API接口交互认证

    #settings.py """ Django settings for AutoCmdb project. Generated by 'django-admin sta ...

  6. Zabbix使用python批量添加主机及主机资产信息-从零到无

    - - 时间:2020年11月10日 - - 作者:飞翔的小胖猪 前言: 使用zabbix作为基础环境的监控系统时,面对现网在用的2000+台把这些主机添加到zabbix监控中是一个问题,当然zabb ...

  7. Oracle的自动统计信息不收集直方图的信息

    Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...

  8. Oracle自动统计信息的收集原理及实验

    [日期:2014-11-21]来源:Linux社区  作者:stevendbaguo[字体:大 中 小] 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATH ...

  9. 当前机器的各种进程、服务信息的收集(win)

    当前机器的各种进程.服务信息的收集(win) 前言 我们在做渗透测试的过程中,遇到Windows系统的环境是最多的,然而在拿到一台Windows胸膛呢权限之后,我们要进行横向渗透测试或者纵向渗透测试, ...

随机推荐

  1. Photoshop给人像加上个性裂纹肌肤

    1.打开人物及纹理素材图片,把素材图片拖到人物图片里面,适当降低图层不透明度. 2.选择菜单:编辑 > 变形 > 自由变形,使纹理位置合适,然后确定. 3.用橡皮工具擦除多余的地方. 4. ...

  2. keras04 - 阿狗阿猫识别 面向对象编程

    参考:https://www.bilibili.com/video/av32756783

  3. 转:SVN 版本服务器搭配全过程详解(含服务端、客户端)

    1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Serve ...

  4. LogHelper 日志

    public class LogHelper : Abp.Domain.Services.DomainService { public static void Debug(object message ...

  5. Win10开机“提示语音”以及”随机播放音乐”

    1.在桌面建立一个.txt文件 2.把一下代码拷贝进去: RandomizeCreateObject("SAPI.SpVoice").Speak"先生,为你播放一首mus ...

  6. CF 543C Remembering Strings

    https://cn.vjudge.net/problem/CodeForces-543C 题目 You have multiset of n strings of the same length, ...

  7. hdu P3374 String Problem

    今天又在lyk大佬的博客学会了——最小表示法(异常激动发篇题解纪念一下说在前面:给luogu提个建议最小表示法的题太少了,都被hdu抢去了!!! 我们先看一下题目 看完后可以用一个字概括——蒙,两个字 ...

  8. Java定义三个点Object...

    从Java 5开始,Java语言对方法参数支持一种新写法,叫 可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]. public ...

  9. BackGround

  10. 关于bytes和bytearray

    背景 平时工作因为有批量线上数据进行更新,通过Python程序连接数据库,利用连接池和gevent的并发性能,处理大量数据. 因为数据方提供的数据表结构中带有varbinary类型字段,并非全部,所以 ...