cmdb

python增减字段流程

丶灬走出姿态 提交于 2019-12-10 17:39:22
python manage.py makemigrations cmdb_jk python manage.py migrate cmdb_jk --database cmdb --fake 修改之前做上面的操作 修改之后,做下面的操作 python manage.py makemigrations cmdb_jk python manage.py migrate cmdb_jk --database cmdb 来源: 51CTO 作者: DevOperater 链接: https://blog.51cto.com/10983441/2448025

CMDB项目开发

蹲街弑〆低调 提交于 2019-12-06 02:53:58
CMDB项目: 技术: Django + python + saltstack + html + css + Js 架构: 后台管理,API,数据采集(agent,ssh,salt) 数据采集 ==》 API ==》 后台管理 认证: 数据采集 - API : 传输验证, key + time.time(), 超时时间限制,维护已经访问过的列表验证 保证资产唯一: 安装系统在系统目录写入带有主机名的文件,每次验证通过该主机名。 数据库数据更新,删除,插入: 新数据 和 老数据进行对比,求交集。 新数据 - 交集 = 插入 老数据 - 交集 =删除 交集的每一项进行对比 = 更新 来源: https://www.cnblogs.com/yuxiaohao/p/10474400.html

cmdb知识总结

孤街醉人 提交于 2019-12-05 09:28:01
cmdb面试 1、paramiko模块的作用与原理 作用:用于帮助开发者通过代码远程连接服务器,并对服务器进行操作。 原理:利用SSH连接服务器 2、cmdb是什么 “CMDB即配置管理数据库,有时也被称为运营自动化,通过识别、控制、维护,检查企业的IT资源,从而高效控制与管理不断变化的IT基础架构与IT服务,并为其它流程,例如事故管理、问题管理、变更管理、发布管理等流程提供准确的配置信息。” 3、为什么要开发CMDB? 公司以后想要搭建自动化运维平台,CMDB是搭建平台的基石。 目前而言,公司资产信息不够准确,因为都维护在excel中,维护主要人,通过CMDB可以自动采集资产信息以及做资产变更记录 4、你们公司有多少台服务器?物理机?虚拟机? 70台左右物理机 ​ 戴尔品牌的服务器 5、你的CMDB是如何实现的? cmdb是由三部分组成,其中包含:资产采集的中控机、API、资产管控平台 - 对于资产采集部分,通过paramiko远程操作服务器(本质SSH)并采集资产信息,然后将资产信息汇报到API, 在资产采集部分还继承了可扩展的功能,让我们定制插件时可以更加方便,实现起来也比较简单,参考django中间件的原理、开发封闭原则、工厂模式实现可插拔式的插件 - api,基于restful规范和drf组件来实现完成,主要做资产入库以及资产变更处理 - 资产管控平台

CMDB连接方式

安稳与你 提交于 2019-12-04 23:03:52
1.agent agent (放在每台客户端服务器上,定时任务) 脚本演示 # 采集本机的信息 执行命令 import subprocess v1 = subprocess.getoutput('ipconfig') v1 = v1[20:30] #print(v1) v2 = subprocess.getoutput('dir') v2 = v2[2:12] #print(v2) 2.paramiko(SSH) pip install paramiko 连接服务器 import paramiko private_key = paramiko.RSAKey.from_private_key_file(r'C:/Users/Administrator/.ssh/id_rsa') # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 #password密码 #pkey密钥 ssh.connect(hostname='192.168.16.85', port=22, username='root', pkey=private_key) # 执行命令 stdin, stdout,

运维CMDB建设思路

寵の児 提交于 2019-12-04 20:46:09
在我们日常的运维工作中,面对着大量的基础设施和软件服务,该如何管理?这个管理的原则又是什么?粒度该如何控制?我们是否可以建立一个统一的标准模型来管理以上对象?管理过程中,如何降低人力成本?资源对象的生命周期管理如何实现?这么多的疑问,所有的运维人都会想到ITIL中的CMDB。的确CMDB在ITIL中应该算是一个核心概念,以它为基础,才能构建起相关的其他运维活动,因为所有的活动都需要与这个CMDB平台交互。在CMDB构建的过程中,都会碰到如上的问题。 记得我刚刚做运维去建设CMDB的时候,觉得非常的轻松。这源于刚工作时候的一份经历,负责电信资源管理系统的开发,电信的资源非常多,从我们日常开通一个电话,电信分配了哪个端子、哪个端口、哪个交换机,他们之间的级联关系,使用了哪个号码都需要完整的记录下来。后续新的业务办理(比如说移机),也需同步记录这些占有资源的变化,可以说这个系统就是一个非常强大的CMDB的系统。这都源于电信背后一套成型的体系----NGOSS(见下图)。 NGOSS是下一代运营支持系统(New Generation Operations System And Software)的缩写,他从业务流程、系统信息模型构建到技术架构实现再到运行管理都提供了一整套的体系框架,他们分别对应四个不同的子系统----业务视图、系统视图、实现视图、部署视图。每个子系统又有一套指导框架

cmdb项目,单例模式,

走远了吗. 提交于 2019-12-04 11:40:30
1.cmdb资产采集之后为什么不直接放到数据库里面?(api接口的作用) 我想中个问题更想问的时api接口作用吧 首先,我程序里面的api接口的作用是做资产采集的入库和资产变更的记录 为什么都通过api来做那? 第一点: 因为我想以后要做运维自动化,所以避免不了会有很多系统来用资产信息,回来我这里获取,虽然我可以给他数据库的账号和密码,但是非常不安全,我只需要给它写一个接口就可以了,然后将数据返回给其他系统 第二点: 在我们进行资产采集的时候,如果不使用api的话,就得在所有服务器上面存上数据库的账号和密码,也会不安全。 2. 单例模式 字面意思就是:只有一个实例,并且只能实力化一次。(保证一个类仅有一个实例,并提供一个访问它的全局访问点。) 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:  1.单例类智能有一个实例  2.单例类必须自己创建自己的唯一实例  3.单例类必须给其他所有对象提供这一实例主要解决:  一个全局频繁使用的类创建和销毁如何使用:  当想控制实例数目,节约系统资源的时候如何解决:  判断视同是否已经有了这个单例,如果有则返回,没有则创建(构造函数必须是私有的)应用场景:  1

CMDB项目中遇到的问题

孤者浪人 提交于 2019-12-04 07:26:31
客户端 类的调用 class Response(object): def __init__(self): self.status = True self.msg = None self.data = None @property def dict(self): return self.__dict__ response = Response() class Disk(object): def __init__(self): self.response = response @property def info(self): self.response.status = 100 self.response.msg = '魏新雨咋软' self.response.data = {'1':{'capatablities': '100GB', 'model': 'hp2344'}} return self.response.dict class Memory(object): def __init__(self): self.response = response @property def info(self): self.response.status = 100 self.response.msg = '陈骏啊, 萨宁啊' self.response.data = {'#DISM1'

CMDB和自动化运维

陌路散爱 提交于 2019-12-03 20:47:01
CMDB和自动化运维 IT运维的分类 IT运维,指的是对已经搭建好的网络,软件,硬件进行维护。运维领域也是细分的,有硬件运维和软件运维 硬件运维主要包括对基础设施的运维,比如机房的设备,主机的硬盘,内存这些物理设备的维护 软件运维主要包括系统运维和应用运维,系统运维主要包括对OS,数据库,中间件的监控和维护,这些系统介于设备和应用之间,应用运维主要是对线上业务系统的运维 这里讨论的主要是软件运维的自动化,包括系统运维和应用运维的自动化 传统运维痛点 日常工作繁琐 日常运维工作是比较繁琐的,研发同学会经常需要到服务器上查日志,重启应用,或者是说今天上线某个产品,需要部署下环境。这些琐事是传统运维的大部分工作 应用运行环境不统一 在部署某应用后,应用不能访问,就会听到开发人员说,在我的环境运行很好的,怎么部署到测试环境后,就不能用了,因为各类环境的类库不统一 还有一种极端情况,运维人员习惯不同,可能凭自己的习惯来安装部署软件,每种服务器上运行软件的目录不统一 运维及部署效率低下 想想运维人员需要登陆到服务器上执行命令,部署程序,不仅效率很低,并且非常容易出现人为的错误,一旦手工出错,追溯问题将会非常不容易 无用报警信息过多 经常会收到很多报警信息,多数是无用的报警信息,造成运维人员经常屏蔽报警信 另外如果应用的访问速度出了问题,总是需要从系统、网络、应用、数据库等一步步的查找原因

cmdb资产管理2

匿名 (未验证) 提交于 2019-12-02 23:54:01
新增资产 现在api服务端已经能获取到我们要做的操作了。接下来应该是补充获取操作后对应的程序编写 我们要做的是把post请求发过来的数据保存到数据库。我们创建repository 名字的app,并设计models创建表来存储数据。后面可以从数据库获取信息并展示出来 from django.db import models class BusinessUnit(models.Model): """ 业务线 """ name = models.CharField('业务线', max_length=64, unique=True) class Meta: verbose_name_plural = "业务线表" def __str__(self): return self.name class IDC(models.Model): """ 机房信息 """ name = models.CharField('机房', max_length=32) floor = models.IntegerField('楼层', default=1) class Meta: verbose_name_plural = "机房表" def __str__(self): return self.name class Server(models.Model): """ 服务器信息 主机 """ device

django新建项目报错python: can't open file 'manage.py': [Errno 2] No such file or directory

匿名 (未验证) 提交于 2019-12-02 22:51:30
今天遇到此问题,一直报错,不知道怎么结果,网上我能找到的方式都试过了,还是不可以 在pycharm下方的terminal终端中输入命令:cd mysite 然后回车就可以了 接着在pycharm下方的terminal终端中输入命令: python manage.py startapp cmdb 这样就创建了一个叫做cmdb的APP,django自动生成“cmdb”文件夹。 接下来回车,我们就能在mysite目录下看到我们新建的cmdb项目,我们就可以开展自己的工程了 文章来源: django新建项目报错python: can't open file 'manage.py': [Errno 2] No such file or directory