一种配置变更的方法及装置与流程

文档序号:12598235阅读:200来源:国知局
一种配置变更的方法及装置与流程

本发明涉及数据处理技术领域,特别是涉及一种配置变更的方法及装置。



背景技术:

CMDB(Configuration Management database,配置管理数据库)包含一个组织的IT服务使用的信息系统的组件的所有相关信息以及这些组件之间的关系,并贯穿其整个生命周期的数据库。CMDB是应用系统构建包含IT基础设施和IT服务逻辑模型的核心部分,CMDB能够对该系统进行有效的IT服务管理。

目前,在对CMDB进行更新或者修改时,由于数据内容庞大,在对CMDB进行修改时,会造成线上数据与线下数据的不统一。由于CMDB数据与线上系统所存储的数据不一致,最终将导致用户不能通过线上的操作相应的响应,影响用户的使用体验。



技术实现要素:

本发明提供了一种配置变更的方法及装置,以解决CMDB数据与线上系统所存储的数据不一致的问题。

为了解决上述问题,本发明公开了一种配置变更的方法,所述方法包括:对配置管理数据库存储的配置文件进行修改,将修改后的所述配置文件设置为配置草稿;对所述配置草稿进行解析,生成变更参数;调用与所述变更参数相匹配的变更工具;通过所述变更工具依据所述变更参数对线上系统中所述配置文件对应的数据进行更新;当所述线上系统存储的数据更新成功时,将所述配置草稿设置为所述配置文件更新后的配置文件。

优选地,所述将修改后的所述配置文件设置为配置草稿的步骤,包括:在修改后的所述配置文件中添加状态字段以及所述配置文件中地址字段,将修改后的所述配置文件设置为配置草稿。

优选地,所述对所述配置草稿进行解析,生成变更参数的步骤,包括:采用基于Groovy的Java Object映射框架对所述配置操作进行解析,生成变更参数。

优选地,所述将所述配置草稿配置为所述配置文件更新后的配置文件的步骤之前,所述方法还包括:将所述配置管理数据库存储的所述配置文件中的数据与所述配置草稿中的数据进行比较,确定变更数据项;依据所述变更数据项生成变更记录。

优选地,所述每一项变更数据项包括:数据类型、变更字段、变更前值以及变更后值;所述依据所述变更数据项生成变更记录的步骤,包括:针对每一项变更数据项,记录所述变更数据项对应的数据类型、变更字段、变更前值以及变更后值。

为了解决上述问题,本发明还公开了一种配置变更的装置,所述装置包括:修改模块,用于对配置管理数据库存储的配置文件进行修改,将修改后的所述配置文件设置为配置草稿;解析模块,用于对所述配置草稿进行解析,生成变更参数;调用模块,用于调用与所述变更参数相匹配的变更工具;更新模块,用于通过所述变更工具依据所述变更参数对线上系统中所述配置文件对应的数据进行更新;配置模块,用于当所述线上系统存储的数据更新成功时,将所述配置草稿设置为所述配置文件更新后的配置文件。

优选地,所述修改模块具体用于:在修改后的所述配置文件中添加状态字段以及所述配置文件中数据的地址字段,将修改后的所述配置文件设置为配置草稿。

优选地,所述解析模块具体用于:采用基于Groovy的Java Object映射框架对所述配置操作进行解析,生成变更参数。

优选地,所述配置模块包括:比较子模块,用于将所述配置管理数据库存储的所述配置文件中的数据与所述配置草稿中的数据进行比较,确定变更数据项;生成子模块,用于依据所述变更数据项生成变更记录。

优选地,所述每一项变更数据项包括:数据类型、变更字段、变更前值以及变更后值;所述生成子模块具体用于:针对每一项变更数据项,记录所述变更数据项对应的数据类型、变更字段、变更前值以及变更后值。

与现有技术相比,本发明具有以下优点:

本发明实施例提供的配置变更的方案,通过对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿;对配置草稿进行解析,生成变更参数;调用与变更参数相匹配的变更工具;对线上系统中配置文件对应的数据进行更新;当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息;将配置草稿配置为配置文件更新后的配置文件。本发明实施例提供的配置变更方案,通过对CMDB的修改,完成CMDB的更新,再对线上系统所存储的数据进行相对应的变更,最终使得线上系统所存储数的数据与CMDB中所存储的数据保持一致,由于CMDB数据与线上系统所存储的数据一致,因此能够保证用户操作均能够得到响应,从而提升用户的使用体验。

附图说明

图1是本发明实施例一的一种配置变更的方法的步骤流程图;

图2是本发明实施例二的一种配置变更的方法的步骤流程图;

图3是本发明实施例三的一种配置变更装置的结构框图;

图4是本发明实施例四的一种配置变更装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

参照图1,示出了本发明实施例一的一种配置变更的方法的步骤流程图。

本发明实施例的配置变更方法包括如下步骤:

步骤101:对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿。

CMDB中存储有多个配置文件,在具体实现过程中用户可以对其中一个或多个配置文件进行修改,本发明实施例中以用户对其中一个配置文件进行修改为例进行说明。

对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿,用于区别未修改的配置管理数据库存储的配置文件。

配置草稿在数据模型中,通过添加字段status及ref_id,标识草稿状态及相关目前线上数据的ID。在将配置文件配置成配置草稿时,可以通过以下程序实现:machine(*id,name,…status,ref_id)

通过下表记录配置变更:

cmdb_change(*id,timestamp)

cmdb_change_detail(*id,type,ref_id,key,old_value,new_value,change_id)

一条cmdb_change由多条cmdb_change_detail组成。

type为该数据类型,如machine;ref_id为该数据的ID,如machine.id;key为该变更影响的字段;old_value为旧值;new_value为新值;change_id为cmdb_change中的ID。

需要说明的是,上述仅是以举例的形式列举了一种将配置文件配置成配置草稿的计算机程序,在具体实现过程中并不限于上述计算机程序。

步骤102:对配置草稿进行解析,生成变更参数。

为了使得CMDB库所存储的数据匹配线上系统所存储的数据,便于用户对线上系统的操作,需要依据配置操作对线上系统中该配置文件对应的数据进行更新,在对线上数据进行更新前,需要将配置操作解析生成变更参数,然后依据变更参数对线上数据进行更新。

步骤103:调用与变更参数相匹配的变更工具。

需要说明的是,不同类型的变更参数匹配不同的变更工具,在具体实现过程中,可以预存多种变更工具以便依据变更参数类型进行变更工具调用。

步骤104:通过变更工具依据变更参数对线上系统中配置文件对应的数据进行更新。

在将配置数据模型转换成变更参数的过程中,需要适配多种配置模型、服务类型、变更种类,因此,在将配置数据模型转换成变更参数的过程中势必需要一套灵活强大、易配置的映射框架。该框架需要适配Java对象,支持简单映射、表达式计算等复杂的功能。配置可直接开放给用户配置,而不需要开发者维护。

步骤105:当线上系统存储的数据更新成功时,将配置草稿设置为配置文件更新后的配置文件。

当接收到线上系统返回的用于指示更新成功的信息时,则说明线上系统所存储的数据与线下系统所存储的配置草稿中的数据已一致。

将配置草稿配置重新配置为配置文件,这样即可使线上、线下数据一致。

本发明实施例提供的配置变更的方法,通过对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿;对配置草稿进行解析,生成变更参数;调用与变更参数相匹配的变更工具;对线上系统中配置文件对应的数据进行更新;当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息;将配置草稿配置为配置文件更新后的配置文件。本发明实施例提供的配置变更方法,通过对CMDB的修改,完成CMDB的更新,再对线上系统所存储的数据进行相对应的变更,最终使得线上系统所存储数的数据与CMDB中所存储的数据保持一致,由于CMDB数据与线上系统所存储的数据一致,因此能够保证用户操作均能够得到响应,从而提升用户的使用体验。

实施例二

参照图2,示出了本发明实施例二的一种配置变更的方法的步骤流程图。

本发明实施例的配置变更方法包括如下步骤:

步骤201:对CMDB存储的配置文件进行修改,在修改后的配置文件中添加状态字段以及配置文件中数据的地址字段,将修改后的配置文件设置为配置草稿。

对CMDB存储的配置文件进行修改,实质上是对线下系统存储的数据进行修改、更新。将修改后的配置文件设置为配置草稿,用于区别未修改的配置管理数据库存储的配置文件。

具体地,配置草稿在数据模型中,通过添加字段status及ref_id,标识草稿状态及相关目前线上数据的ID,在将配置文件配置成配置草稿时,可以通过以下程序:

machine(*id,name,…status,ref_id)

通过下表记录配置变更:

cmdb_change(*id,timestamp)

cmdb_change_detail(*id,type,ref_id,key,old_value,new_value,change_id)

一条cmdb_change由多条cmdb_change_detail组成。

type为该数据类型,如machine;ref_id为该数据的ID,如machine.id;key为该变更影响的字段;old_value为旧值;new_value为新值;change_id为cmdb_change中的ID。

需要说明的是,上述仅是以举例的形式列举了一种将配置文件配置成配置草稿的计算机程序,在具体实现过程中并不限于上述计算机程序。

步骤202:采用基于Groovy的Java Object映射框架对配置操作进行解析,生成变更参数。

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy代码能够与Java代码很好地结合,也能用于扩展现有代码。由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库,Java Object即Java对象。

由于CMDB数据模型、变更使用的框架、及变更种类的多样性,因此需要一套灵活强大、易配置、热部署的框架来管理CMDB数据模型与变更参数间的映射关系。相应地,在对配置草稿进行解析生成变更参数时,需要借助相应的对象映射框架将配置成草稿中的对象映射成统一的变更参数。本发明实施例中以借助Nomin对配置草稿进行解析为例进行说明。

Nomin是一种基于Groovy的Java对象映射框架。它支持复杂的对象映射,表达式计算,热部署等特性。使用Nomin可以方便、灵活地将各异的CMDB数据模型映射到统一的变更参数。

例如,从配置草稿模型Foo,到统一变更参数模型Bar:

Foo(id,name,ip,cpu,mem)

Bar(instance_name,port,cpu,mem)

可以有如下映射配置:

mappingFor a:Bar,b:Foo

a.instance_name={b.ip+“:3306”}

a.port=“3306”

a.cpu=b.cpu

a.mem={b.mem/1024/1024/1024}

其中,Foo(id,name,ip,cpu,mem)表示配置草稿模型Foo内存储的参数信息;

Bar(instance_name,port,cpu,mem)表示配置草稿模型Bar内存储的参数信息;

mappingFor a:Bar,b:Foo表示Foo变成Bar的映射关系。

步骤203:调用与变更参数相匹配的变更工具。

做线上变更会运用到不同的工具,如Ansible,Puppet等,不同的变更工具需要传入不同的变更参数格式。但是所有的变更工具可以抽象出统一的变更参数模型,再通过不同的Generator程序生成出符合不同变更工具的参数格式。因此本步骤中需要调用与变更参数相匹配的变更更具。需要说明的是,变更工具与变更参数相匹配包括但不限于:变更工具与变更参数格式匹配。

步骤204:通过变更工具依据变更参数对线上系统中配置文件对应的数据进行更新。

步骤205:当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息。

当接收到线上系统返回的用于指示更新成功的信息时,则说明线上系统所存储的数据与线下系统所存储的配置草稿中的数据已一致。在对线上数据进行更新完毕后,即可采用步骤206至步骤208中的步骤对CMDB中存储的线下数据进行更新。

步骤206:将CMDB存储的配置文件中的数据与配置草稿中的数据进行比较,确定变更数据项。其中,变更数据项可根据本领域技术人员的需要进行设定,变更数据项可以为:type数据类型;old_value旧值;new_value新值等,对此不做限制。

步骤207:针对每一项变更数据项,记录变更数据项对应的数据类型、变更字段、变更前值以及变更后值。

步骤208:依据变更数据项生成变更记录。

在对线下数据进行更新前,需要确定配置草稿与原配置文件之间变更的数据项,以记录本次更新对应的变更记录,便于技术人员根据变更记录后期对本次配置文件修改进行追溯。

步骤209:将配置草稿设置为配置文件更新后的配置文件。

将配置草稿配置重新配置为配置文件,这样即可使线上、线下数据一致。

本发明实施例提供的配置变更的方案,通过对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿;对配置草稿进行解析,生成变更参数;调用与变更参数相匹配的变更工具;对线上系统中配置文件对应的数据进行更新;当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息;将配置草稿配置为配置文件更新后的配置文件。本发明实施例提供的配置变更方案,通过对CMDB的修改,完成CMDB的更新,再对线上系统所存储的数据进行相对应的变更,最终使得线上系统所存储数的数据与CMDB中所存储的数据保持一致,由于CMDB数据与线上系统所存储的数据一致,因此能够保证用户操作均能够得到响应,从而提升用户的使用体验。

实施例三

参照图3,示出了本发明实施例三的一种配置变更装置的结构框图。

本发明实施例的配置变更装置包括:修改模块301,用于对配置管理数据库存储的配置文件进行修改,将修改后的所述配置文件设置为配置草稿;解析模块302,用于对所述配置草稿进行解析,生成变更参数;调用模块303,用于调用与所述变更参数相匹配的变更工具;更新模块304,用于通过所述变更工具依据所述变更参数对线上系统中所述配置文件对应的数据进行更新;配置模块305,用于当所述线上系统存储的数据更新成功时,线上系统将所述配置草稿配置为所述配置文件更新后的配置文件。

本发明实施例提供的配置变更的装置,通过对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿;对配置草稿进行解析,生成变更参数;调用与变更参数相匹配的变更工具;对线上系统中配置文件对应的数据进行更新;当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息;将配置草稿配置为配置文件更新后的配置文件。本发明实施例提供的配置变更装置,通过对CMDB的修改,完成CMDB的更新,再对线上系统所存储的数据进行相对应的变更,最终使得线上系统所存储数的数据与CMDB中所存储的数据保持一致,由于CMDB数据与线上系统所存储的数据一致,因此能够保证用户操作均能够得到响应,从而提升用户的使用体验。

实施例四

参照图4,示出了本发明实施例四的一种配置变更装置的结构框图。

本发明实施例的配置变更装置包括:修改模块401,用于对配置管理数据库存储的配置文件进行修改,将修改后的所述配置文件设置为配置草稿;解析模块402,用于对所述配置草稿进行解析,生成变更参数;调用模块403,用于调用与所述变更参数相匹配的变更工具;更新模块404,用于通过所述变更工具依据所述变更参数对线上系统中所述配置文件对应的数据进行更新;配置模块405,用于当所述线上系统存储的数据更新成功时,线上系统将所述配置草稿设置为所述配置文件更新后的配置文件。

优选地,修改模块401具体用于在修改后的所述配置文件中添加状态字段以及所述配置文件中数据的地址字段,将修改后的所述配置文件设置为配置草稿。

优选地,解析模块402具体用于:采用基于Groovy的Java Object映射框架对所述配置操作进行解析,生成变更参数。

优选地,配置模块包括405:比较子模块4051,用于将所述配置管理数据库存储的所述配置文件中的数据与所述配置草稿中的数据进行比较,确定变更数据项;生成子模块4052,用于依据所述变更数据项生成变更记录。

优选地,每一项变更数据项包括:数据类型、变更字段、变更前值以及变更后值;所述生成子模块4052具体用于:针对每一项变更数据项,记录所述变更数据项对应的数据类型、变更字段、变更前值以及变更后值。

本发明实施例提供的配置变更的装置,通过对CMDB存储的配置文件进行修改,将修改后的配置文件设置为配置草稿;对配置草稿进行解析,生成变更参数;调用与变更参数相匹配的变更工具;对线上系统中配置文件对应的数据进行更新;当线上系统存储的数据更新成功时,接收线上系统返回的用于指示更新更成功的信息;将配置草稿配置为配置文件更新后的配置文件。本发明实施例提供的配置变更装置,通过对CMDB的修改,完成CMDB的更新,再对线上系统所存储的数据进行相对应的变更,最终使得线上系统所存储数的数据与CMDB中所存储的数据保持一致,由于CMDB数据与线上系统所存储的数据一致,因此能够保证用户操作均能够得到响应,从而提升用户的使用体验。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本发明所提供的一种配置变更的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1