一种控制器集群安装方法和装置与流程

文档序号:16206986发布日期:2018-12-08 07:14阅读:216来源:国知局
一种控制器集群安装方法和装置与流程

本发明涉及控制器集群的安装技术,尤其涉及一种控制器集群安装方法和装置。

背景技术

软件定义网络(sdn,softwarededfinednetwork)架构中,为解决单控制器面临性能和高可用性问题,均采用集群方式部署。集群方式部署现在面临如下要求:

1、要求控制器产品接入安装部署系统简单,支持不同的控制器产品,支持扩展;

2、要求方便安装部署系统的用户使用,易用性高,直观、智能并可简单快速的进行问题定位。

现有的控制器集群安装方案分两种:

方案一、脚本方式:采用命令行的方式进行安装,需要用户熟记命令。其缺点为:易用性差,用户输入不方便,操作过程较为繁复,对于多台服务器的安装,只能串行进行,且安装过程中出现问题没有日志记录,日后定位问题较为困难,脚本扩展性差,很难支持扩展。

方案二、kubernetes(k8s)等集群安装管理系统:基于云平台实现。其缺点为:系统本身庞大,需要很复杂的安装配置;主要针对超大规模服务器集群(百台以上服务器),使用成本很高,系统为应付所有场景,高度抽象,导致易用性很差。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种控制器集群安装方法和装置,成本低、方法易用,能够简单、快速的完成控制器集群的安装。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种控制器集群安装方法,所述方法,包括:确定用户类型,对不同类型用户的指令进行响应;其中,

对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。

上述方案中,所述根据配置文件生成配置页面之前,所述方法还包括:

对于第二用户的指令,针对不同产品特征确定或修改配置文件,以将产品接入安装工具。

上述方案中,所述根据所述配置文件生成配置页面,包括:

运用预设的转换规则将所述配置文件转换为目标格式的数据;

根据所述目标格式的数据提取产品特征,根据所述产品特征生成可视化的配置页面。

上述方案中,所述获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,包括:

根据在所述配置页面上填写的集群安装信息生成各组件配置文件,根据所述组件配置文件生成安装文件;

根据所述集群安装信息和所述安装文件生成安装对象,将所述安装对象安装到集群。

上述方案中,所述将所述安装对象安装到集群,包括:

解析所述安装对象获得远程服务器连接信息;

根据所述远程服务器连接信息,通过安全外壳协议ssh与远程服务器建立连接,远程执行壳shell命令安装所述安装对象。

上述方案中,所述根据所述配置文件完成控制器集群的安装工作之后,所述方法还包括:

从所述配置文件中提取节点扩容能力配置信息,运用预设的转换规则将所述节点扩容能力配置信息转换为目标格式的数据,根据所述目标格式的数据生成扩容界面;

在生成的扩容界面上根据服务器选择操作和对应节点数量调整操作,获得新的配置信息,根据所述新的配置信息完成节点扩容。

上述方案中,所述将所述安装对象安装到集群,还包括:在安装过程中,记录用于进行故障检查的日志并保存。

本发明实施例提供了一种控制器集群安装装置,所述装置包括:第一处理模块和第二处理模块;其中,

所述第一处理模块,用于确定用户类型;

所述第二处理模块,用于对不同类型用户的指令进行响应;其中,

对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。

上述方案中,所述第二处理模块,还用于:对于第二用户的指令,针对不同产品特征确定或修改配置文件,以将产品接入安装工具。

上述方案中,所述第二处理模块,具体用于运用预设的转换规则将所述配置文件转换为目标格式的数据;

根据所述目标格式的数据提取产品特征,根据所述产品特征生成可视化的配置页面。

上述方案中,所述第二处理模块,还用于根据在所述配置页面上填写的集群安装信息生成各组件配置文件,根据所述组件配置文件生成安装文件;

根据所述集群安装信息和所述安装文件生成安装对象,将所述安装对象安装到集群。

上述方案中,所述第二处理模块,还用于解析所述安装对象获得远程服务器连接信息;

根据所述远程服务器连接信息,通过安全外壳协议ssh与远程服务器建立连接,远程执行壳shell命令安装所述安装对象。

上述方案中,所述第二处理模块,还用于从所述配置文件中提取节点扩容能力配置信息,运用预设的转换规则将所述节点扩容能力配置信息转换为目标格式的数据,根据所述目标格式的数据生成扩容界面;

在生成的扩容界面上根据服务器选择操作和对应节点数量调整操作,获得新的配置信息,根据所述新的配置信息完成节点扩容。

上述方案中,所述第二处理模块,还用于在安装过程中,记录用于进行故障检查的日志并保存。

本发明实施例所提供的一种控制器集群安装方法和装置,确定用户类型,对不同类型用户的指令进行响应;其中,对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。本发明实施例提供的方法和装置,可以承担多种控制器产品的安装部署工作,并提供了管理和监控功能,有较高的易用性和扩展性。

附图说明

图1为本发明实施例提供的一种控制器集群的安装方法一的流程示意图;

图2为本发明实施例提供的一种控制器集群的安装方法二的流程示意图;

图3为本发明实施例提供的一种控制器集群的扩容方法的流程示意图;

图4为本发明实施例提供的一种配置引擎的工作流程示意图;

图5为本发明实施例提供的一种安装引擎的工作流程示意图;

图6为本发明实施例提供的一种配置引擎的结构示意图;

图7为本发明实施例提供的一种安装引擎的结构示意图;

图8为本发明实施例提供的一种安装工具的结构示意图;

图9为本发明实施例提供的一种控制器集群的安装装置的结构示意图。

具体实施方式

在本发明的各种实施例中,确定用户类型,对不同类型用户的指令进行响应;其中,对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。

下面结合实施例对本发明再作进一步详细的说明。

图1为本发明实施例提供的一种控制器集群的安装方法一的流程示意图;如图1所示,所述方法,包括:

步骤101、确定用户类型;

步骤102、对不同类型用户的指令进行响应;其中,

对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。

这里,所述集群,包括:控制器节点、计算节点、消息中心节点和配置中心节点等,各节点可以设置在一个或多个服务器上。

具体地,所述根据配置文件生成配置页面之前,所述方法还包括:

对于第二用户的指令,针对不同产品特征确定或修改配置文件,以将产品接入安装工具。

具体地,所述针对不同产品特征确定或修改配置文件,包括:

针对不同产品特征,确定或修改安装工具提供的预设的xml格式的配置文件,为不同产品配置符合要求的配置文件,从而将产品接入安装工具。

具体地,所述根据所述配置文件生成配置页面,包括:

安装工具运用预设的转换规则将所述配置文件转换为目标格式的数据;

根据所述目标格式的数据提取产品特征,根据所述产品特征生成可视化的配置页面。

这里,所述配置文件的格式,可以为:可扩展标记语言(xml,extensiblemarkuplanguage)的格式;

所述目标格式,可以为:java描述语言对象标记(json,javascriptobjectnotation)的格式。

所述预设的转换规则为将xml格式的文件转换为安装工具所需的json格式的数据的规则,预先设置并保存在所述安装工具中。

具体地,所述获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,包括:

安装工具根据在所述配置页面上填写的集群安装信息生成各组件配置文件,根据所述组件配置文件生成安装文件;

根据所述集群安装信息和所述安装文件生成安装对象,将所述安装对象安装到集群。

这里,所述集群安装信息,包括:远程服务器连接信息、集群规模配置、虚拟网络之间互连的协议地址(vip,virtualipaddress)等信息。

所述远程服务器连接信息,包括:服务器的网络之间互连的协议(ip,internetprotocol)地址、端口、用户名、密码、网关等信息;

所述集群规模配置,包括:各台服务器中所需安装的控制器节点、计算节点、消息中心节点和配置中心节点的数目;

这里,所述组件配置文件,包括:引擎(docker)、docker-compose、linux虚拟服务器(lvs,linuxvirtualserver)、ldirectord、keepalived等。

具体地,所述将所述安装对象安装到集群,包括:

安装工具解析所述安装对象获得远程服务器连接信息;

根据所述远程服务器连接信息,通过安全外壳协议(ssh,secureshell)与远程服务器建立连接,远程执行壳(shell)命令安装所述安装对象。

具体地,所述将所述安装对象安装到集群,还包括:

在安装过程中,安装工具记录用于进行故障检查的日志并保存。

所述日志,可以包括:命令行界面(cli,command-lineinterface)日志和安装日志;当出现安装故障时,可以查看所述日志进行故障检查。

一个控制器集群,包括以下节点中的至少一个:控制器节点、计算节点、消息中心节点和配置中心节点等。根据集群中服务器性能差别和系统能力扩展需要,需实现集群扩容功能。本发明实施例中提供的方法,还包括:控制器集群的扩容方法;具体来说,

所述根据所述配置文件完成控制器集群的安装工作之后,所述方法还包括:

安装工具从所述配置文件中提取节点扩容能力配置信息,运用预设的转换规则将所述节点扩容能力配置信息转换为目标格式的数据,根据所述目标格式的数据生成扩容界面;

在生成的扩容界面上根据服务器选择操作和对应节点数量调整操作,获得新的配置信息,根据所述新的配置信息完成节点扩容。

这里,所述目标格式可以为json格式,所述配置文件为xml格式的文件。

所述安装工具从xml格式的配置文件中提取节点扩容能力配置信息,针对所述节点扩容能力配置信息运用预设的转换规则,将所述节点扩容能力配置信息转换为json格式的数据,运用所述json格式的数据生成扩容界面;

图2为本发明实施例提供的一种控制器集群的安装方法二的流程示意图;如图2所示,所述方法,包括:

步骤201、用户可以针对产品特点修改安装工具提供的配置文件的模板;安装工具根据修改后获得的配置文件,为不同产品配置符合要求的配置文件,并将安装过程所需的镜像文件置入到指定目录;

这里,所述配置文件的格式为xml格式;所述安装工具,可以包括:配置引擎(configurationengine)、安装引擎(installationengine);

所述安装工具,还可以包括:人机交互界面,所述安装工具通过所述人机交互界面接收用户输入的信息;

具体来说,步骤201中所述安装工具通过所述人机交互界面接收用户修改安装工具提供的xml格式的配置文件的模板的信息,确定不同产品对应的配置文件,以将产品接入安装工具;

步骤202、安装工具启动,进入计算机应用程序(app)界面,进入配置页面;

这里,在实际应用中,app界面可以提供安装按钮,用户点击安装按钮,即可进入配置页面;

步骤203、用户通过人机交互界面选择所要安装的集群安装包,填写集群名,并设置集群所要安装路径;

所述配置引擎根据步骤201中配置的xml格式的配置文件,运用预设的转换规则生成json类型的数据,供安装工具生成符合当前所选产品类型的前台展示的配置页面;

步骤204、进入配置页面,配置引擎根据在所述配置页面进行填写远程服务器连接信息的操作,以完成远程服务器连接信息的配置;

所述远程服务器连接信息,包括:远程服务器的ip地址、端口、用户名、密码、网关等信息;完成配置后进入步骤205;

这里,如需使用多台服务器则点击添加服务器按钮,添加多台服务器;

步骤205、配置引擎对步骤204所添加的服务器进行校验,包括:检查所述远程服务器是否连通,所提供的远程服务器的账户权限是否满足安装需要;

如满足进入步骤206,不满足则提示用户重新填写相关信息;

步骤206、用户通过人机交互界面选择安装规模,如果对已有默认规模不满意,可以进行调整;之后进入步骤207;

步骤207、用户可通过人机交互界面对步骤204中添加的各台远程服务器中所需安装的控制器节点、计算节点、消息中心节点和配置中心节点的数目进行调整,并配置vip的相关信息,配置完成后进入步骤208;

步骤208、检查vip是否被占用,如果被占用重新填写vip,如果未被占用则进入步骤209;

步骤209、所述配置引擎收集步骤204、206、207所填写的信息,结合该产品对应配置文件,智能生成各组件配置文件,供安装引擎安装部署使用;

步骤210、进入安装页面,所述安装页面显示有安装按钮,用户点击安装按钮后开始集群安装;

安装过程中实时显示安装信息,如在安装过程中出现异常,用户可通过后台记录的cli日志进行故障排查,如继续安装,则点击安装按钮,可支持断点重装;安装成功后,进入集群管理界面;

步骤211、判断安装是否成功,如果成功安装则结束,否则进入步骤212;

步骤212、安装失败,选择是否重新安装,如需重新安装则返回步骤210继续进行,否则安装结束,安装失败。

图3为本发明实施例提供的一种控制器集群的扩容方法的流程示意图;如图3所示,所述方法,包括:

步骤301、配置引擎选择需要扩容的服务器或添加新服务器进行扩容;

步骤302、配置引擎读取需要扩容的服务器或添加的新服务器的xml格式的配置文件,确定各类型节点是否具有扩展能力,根据分析结果组织json格式的数据,以供安装工具前台自动规划配置页面;

步骤303、配置引擎选择对应的服务器,调整相应节点数目;

步骤304、配置引擎通过人机交互界面显示确认预览信息的提示,展示调整后各服务器节点数目变化;

步骤305、根据步骤304的所述预览信息,确认是否扩容,如果扩容则进入步骤306,否则进入步骤303,重新调整;

步骤306、确定进行扩容,配置引擎根据调整后的结果,智能生成扩容规划后的配置信息,驱动安装引擎根据扩容规划后的配置信息完成扩容操作;

所述扩容操作,包括:上传镜像、安装镜像、新建docker容器、配置网络、启动容器等操作;

步骤307、确认扩容是否成功,如果确定扩容成功,则扩容结束,安装工具自动刷新前台页面,显示集群扩容后各节点配置信息;否则,进入步骤308;

步骤308、扩容失败,选择是否排除问题重新扩容,如需重新扩容,返回步骤306重新扩容,否则扩容结束,扩容失败。

图4为本发明实施例提供的一种配置引擎的工作流程示意图;所述配置引擎作为核心组件,负责接入产品、生成前台展示的页面和调用安装引擎,如图4所示,所述配置引擎的工作具体包括:

步骤401、配置引擎根据用户选择的产品类型,读取对应xml格式的配置文件;

步骤402、配置引擎根据预设的转换规则提取步骤401中部分数据转为json格式的数据;

步骤403、配置引擎基于上述json格式的数据,生成前台的配置页面;

步骤404、配置引擎接收用户输入集群安装信息的指令;

所述集群安装信息,包括:远程服务器连接信息、网络配置信息、集群规模信息等;

步骤405、配置引擎根据步骤403生成的json格式的数据,智能生成各组件配置文件,组织安装文件;

步骤406、配置引擎接收用户确认配置信息的指令,如果确认进入步骤407,否则返回步骤404;

步骤407、配置引擎调用安装引擎,输入安装信息,完成安装工作。

图5为本发明实施例提供的一种安装引擎的工作流程示意图;所述安装引擎作为安装最底层,负责将配置引擎生成的安装对象安装到具体服务器的集群上,如图5所示,所述安装引擎的工作具体包括:

步骤501、安装引擎接收配置引擎的安装命令,解析安装对象;

步骤502、根据用户通过人机交互界面输入的远程服务器信息,通过ssh与远程服务器建立连接;

步骤503、通过ssh上传相关镜像和配置文件;

步骤504、判断上传是否成功,如果确定上传成功,则进入步骤506,否则,进入505;

步骤505、确定上传失败,通过人机交互界面提示用户选择是否重新上传,如果确定需重新上传,则进入重新步骤503,否则,安装失败;

步骤506、安装引擎将配置引擎生成的安装对象,通过远程执行shell命令完成安装;安装过程中记录cli日志和安装日志;

步骤507、判断是否安装成功,如果确定安装成功,安装过程正常中止,否则进入步骤508;

步骤508、接收用户输入的是否重新安装的指令,如重新安装,则排除安装失败问题后,进入步骤506重新执行安装命令;否则安装失败,安装过程中止;

实际应用中,可以通过人机交互界面显示是否进行重新安装的选择按钮,接收用户输入的是否重新安装的结果指令。

图6为本发明实施例提供的一种配置引擎的结构示意图;如图6所示,所述配置引擎(configurationengine)作为安装工具的前台与安装引擎(installationengine)的中间件,在整个系统中起到重要的作用。

所述配置引擎主要用于对不同产品预配置的xml格式的配置文件进行解析;针对不同产品特征,生成可视化的配置页面,由前台展示;协调前台与安装引擎的工作,并负责日志的记录,对安装过程中出现的异常情况,具有一定的处理能力。

图7为本发明实施例提供的一种安装引擎的结构示意图;如图7所示,所述安装引擎(installationengine)作为安装过程的具体实施者,安装引擎直接和远程服务器进行交互。所述安装引擎基于ssh实现,通过将安装流程抽象成不同的安装步骤,实现降低不同步骤间的耦合度,提高可复用性,借此使安装引擎具有从指定步骤执行的能力,同时在安装过程中实时记录日志。

图8为本发明实施例提供的一种安装工具的结构示意图;如图8所示,所述安装工具,包括:配置引擎(configurationengine)和安装引擎(installationengine);其中,

所述配置引擎用于读取配置文件,通过预设的转化规则,生成json格式的数据,供安装工具生成配置页面,并在前台展示。

根据填写集群安装信息的操作,以配置引擎智能生成各组件配置文件;所述集群安装信息,包括:远程服务器连接信息、集群规模配置、vip等信息,所述组件配置文件,包括:docker,docker-compose,lvs,ldirectord,keepalived等;

配置结束后,配置引擎调用安装引擎,由所述安装引擎通过ssh进行并行安装,安装过程实时显示安装信息,并记录详细的cli日志,如出现安装失败,可通过查看clicommand-lineinterface,命令行界面日志,排除错误后,断点重装。

图9为本发明实施例提供的一种控制器集群的安装装置的结构示意图;如图9所示,所述装置,包括:第一处理模块和第二处理模块;其中,

所述第一处理模块,用于确定用户类型;

所述第二处理模块,用于对不同类型用户的指令进行响应;其中,

对于第一用户的指令,根据配置文件生成配置页面,获取在得到的所述配置页面上填写的集群安装信息,根据所述集群安装信息生成安装对象,将所述安装对象安装到集群。

这里,所述集群安装信息,可以包括但不限于:远程服务器连接信息、集群规模配置、虚拟网络之间互连的协议地址(vip,virtualipaddress)等信息。

具体地,所述第二处理模块,还用于:对于第二用户的指令,针对不同产品特征确定或修改配置文件,以将产品接入安装工具。

具体地,所述第二处理模块,具体用于运用预设的转换规则将所述配置文件转换为目标格式的数据;

根据所述目标格式的数据提取产品特征,根据所述产品特征生成可视化的配置页面。

这里,所述预设的转换规则为将xml格式的文件转换为安装工具所需的json格式的数据的规则,预先设置并保存在所述安装工具中。

具体地,所述第二处理模块,还用于根据在所述配置页面上填写的集群安装信息生成各组件配置文件,根据所述组件配置文件生成安装文件;

根据所述集群安装信息和所述安装文件生成安装对象,将所述安装对象安装到集群。

具体地,所述第二处理模块,还用于解析所述安装对象获得远程服务器连接信息;

根据所述远程服务器连接信息,通过安全外壳协议ssh与远程服务器建立连接,远程执行壳shell命令安装所述安装对象。

具体地,所述第二处理模块,还用于在安装过程中,记录用于进行故障检查的日志并保存。

本发明实施例提供的装置,还可以用于进行节点扩容;具体来说,

所述第二处理模块,还用于从所述配置文件中提取节点扩容能力配置信息,运用预设的转换规则将所述节点扩容能力配置信息转换为目标格式的数据,根据所述目标格式的数据生成扩容界面;

在生成的扩容界面上根据服务器选择操作和对应节点数量调整操作,获得新的配置信息,根据所述新的配置信息完成节点扩容。

结合上述实施例,对本发明的思想做进一步阐述说明;

本发明实施例的方法或装置,将用户抽象为产品接入用户和产品安装用户(最终用户),所述产品接入用户即所述第二用户,所述产品安装用户即所述第一用户;其中,

所述产品接入用户是通过配置产品接入的xml格式的配置文件,实现以节点为单位的组件化安装模式,该模式保证了系统极高的配置灵活性和高可扩展性,用户只需根据不同的产品类型和特点,调整xml格式的配置文件的模板,即可实现对不同产品的接入工作,极大的提高了系统扩展性。

所述产品安装用户的抽象,则考虑最终用户的安装工作的易用性,提供给用户可视化配置页面方便用户完成安装工作,降低了整个系统的学习成本;并发式安装的引入实现了多台服务器的并行安装,提高安装效率;步骤日志和cli日志的双日志记录方式使问题的定位更加快速准确。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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