一种基于Openstack创建集群环境的方法、装置及系统与流程

文档序号:12063445阅读:242来源:国知局
本发明涉及通信
技术领域
:,特别是指一种基于Openstack创建集群环境的方法、装置及系统。
背景技术
::Openstack是一种开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作,具有实施简单、可大规模扩展、丰富的API(ApplicationProgrammingInterface,应用程序编程接口),可以便捷的为租户提供虚拟机资源。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。现有的需要做一个已安装所需的软件包的系统镜像,从镜像启动创建多台虚拟机,登录各台虚拟机后做Docker相关集群的配置,验证服务可用后,用户才能使用此集群环境。从而,该过程就存在着以下问题:安装部署复杂,不同人搭建的环境不一致概率大;需要每个人都有熟知整个安装部署的流程;重复性劳动高,效率低。技术实现要素:本发明的目的是提供一种基于Openstack创建集群环境的方法、装置及系统,快速在Openstack平台上部署集群环境,操作简便,部署的环境具有强一致性。为达到上述目的,本发明的实施例提供一种基于Openstack创建集群环境的方法,包括:根据用户设置虚拟机数量确定虚拟机创建请求数量以及向Openstack云平台申请与虚拟机数量相同的浮动地址;根据Openstack云平台分配的浮动地址生成用户脚本文件;发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台,以使Openstack云平台根据所述浮动地址创建虚拟机并在创建完毕后调用所述用户脚本文件对用户所需环境进行部署。其中,所述根据用户设置虚拟机数量确定虚拟机创建请求数量以及向Openstack云平台申请与虚拟机数量相同的浮动地址的步骤之前还包括:验证用户在Openstack云平台的项目标识。其中,所述验证用户在Openstack云平台的用户项目标识的步骤包括:在用户登录Openstack云平台时,获取Openstack云平台提供的项目标识;若所述项目标识唯一确定,则验证通过,并获取所述项目标识对应的Openstack云平台应用程序编程接口API地址;若所述项目标识不唯一确定,则流程结束。其中,所述方法还包括:在接收到创建请求应答后,按照预设周期查询Openstack云平台是否创建虚拟机成功;若获取到虚拟机创建成功消息,且接收到用户脚本文件执行成功反馈消息后,根据所述API地址进行API服务判断;在获取到虚拟机创建失败消息或创建超时,返回发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台的步骤。其中,所述方法还包括:在API服务判断的结果是API服务已启动时,获取已创建虚拟机的详细信息进行显示,所述详细信息至少包括每个虚拟机对应的浮动地址。其中,所述用户脚本文件中至少定义了虚拟机使用的浮动地址和虚拟机角色,以使Openstack云平台能够根据所述用户脚本文件进行包括:等待网络通信可用、更新系统软件包、安装设定软件包、配置静态防火墙Iptables规则、配置kubernetes集群、启动相关服务和验证服务可用的操作。为达到上述目的,本发明的实施例还提供了一种基于Openstack创建集群环境的装置,包括:处理模块,用于根据用户设置虚拟机数量确定虚拟机创建请求数量以及向Openstack云平台申请与虚拟机数量相同的浮动地址;生成模块,用于根据Openstack云平台分配的浮动地址生成用户脚本文件;发送模块,用于发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台,以使Openstack云平台根据所述浮动地址创建虚拟机并在创建完毕后调用所述用户脚本文件对用户所需环境进行部署。其中,所述装置还包括:验证模块,用于验证用户在Openstack云平台的项目标识。其中,所述验证模块包括:获取子模块,用于在用户登录Openstack云平台时,获取Openstack云平台提供的项目标识;验证子模块,用于若所述项目标识唯一确定,则验证通过,并获取所述项目标识对应的Openstack云平台应用程序编程接口API地址;若所述项目标识不唯一确定,则流程结束。其中,所述装置还包括:查询模块,用于在接收到创建请求应答后,按照预设周期查询Openstack云平台是否创建虚拟机成功;服务判断模块,用于若获取到虚拟机创建成功消息,且接收到用户脚本文件执行成功反馈消息后,根据所述API地址进行API服务判断;重创建模块,用于在获取到虚拟机创建失败消息或创建超时,返回发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台的步骤。其中,所述装置还包括:显示模块,用于在API服务判断的结果是API服务已启动时,获取已创建虚拟机的详细信息进行显示,所述详细信息至少包括每个虚拟机对应的浮动地址。其中,所述用户脚本文件中至少定义了虚拟机使用的浮动地址和虚拟机角色,以使Openstack云平台能够根据所述用户脚本文件进行包括:等待网络通信可用、更新系统软件包、安装设定软件包、配置静态防火墙Iptables规则、配置kubernetes集群、启动相关服务和验证服务可用的操作。为了达到上述目的,本发明实施例还提供了一种基于Openstack创建集群环境的系统,包括如上所述的基于Openstack创建集群环境的装置。本发明的上述技术方案的有益效果如下:本发明实施例的方法,根据虚拟机数量确定创建请求数量,并且提前申请与虚拟机数量相同的浮动地址,可以根据浮动地址由用户脚本文件模板生成所需的用户脚本文件,从而Openstack云平台接收到创建请求后创建用户所需的全部虚拟机并调用该用户脚本文件完成所需环境的部署,操作简单,不需要操作人员去分开部署虚拟机环境,也就避免了不同人搭建环境出现不一致、重复性劳动等问题。附图说明图1为本发明实施例基于Openstack创建集群环境的方法的流程示意图一;图2为用户脚本文件包含的操作示意图;图3为本发明实施例基于Openstack创建集群环境的方法的具体步骤流程示意;图4为本发明实施例基于Openstack创建集群环境的方法的流程示意图二;图5为发明实施例基于Openstack创建集群环境的装置的结构示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明针对现有的集群部署存在的操作复杂,不同人搭建的环境不一致概率大,还需要每个人都有熟知整个安装部署的流程,重复性劳动高,效率低的等问题,提出了一种基于Openstack创建集群环境的方法、装置及系统,实现快速在Openstack平台上部署集群环境,操作简便,部署的环境具有强一致性。如图1所示,本发明的实施例提供一种基于Openstack创建集群环境的方法,包括:步骤101,根据用户设置虚拟机数量确定虚拟机创建请求数量以及向Openstack云平台申请与虚拟机数量相同的浮动地址。步骤102,根据Openstack云平台分配的浮动地址生成用户脚本文件;步骤103,发送创建请求、所述浮动地址以及用户脚本文件至Openstack 云平台,以使Openstack云平台根据所述浮动地址创建虚拟机并在创建完毕后调用所述用户脚本文件对用户所需环境进行部署。一个创建请求能够创建一台虚拟机,根据用户设置虚拟机数量确定虚拟机创建请求数量,而且还要向Openstack云平台申请与虚拟机数量相同的浮动地址,有了该浮动地址,通过用户脚本文件模板才能生成该项目的用户脚本文件。之后,将创建请求、浮动地址以及用户脚本文件发送到Openstack云平台,这样,Openstack云平台就可以完成虚拟机的创建,并在创建完成后调用用户脚本文件对用户所需环境进行部署。本发明实施例的方法,根据虚拟机数量确定创建请求数量,并且提前申请与虚拟机数量相同的浮动地址,可以根据浮动地址由用户脚本文件模板生成所需的用户脚本文件,从而Openstack云平台接收到创建请求后同时建立用户所需的全部虚拟机,并调用该用户脚本文件完成所需环境的部署,操作简单,不需要操作人员去分开部署虚拟机环境,也就避免了不同人搭建环境出现不一致、重复性劳动等问题。需要说明的是,上述方法能够应用于Docker集群所需环境的部署。具体的,如图2所示,所述用户脚本文件中至少定义了虚拟机使用的浮动地址和虚拟机角色,以使Openstack云平台能够根据所述用户脚本文件进行包括:等待网络通信可用、更新系统软件包、安装设定软件包、配置静态防火墙Iptables规则、配置kubernetes集群、启动相关服务和验证服务可用的操作。其中的设定软件包是Docker、kubernetes相关软件包。另外,本发明实施例的方法,在步骤101之前还包括:步骤104,验证用户在Openstack云平台的项目标识。由于用户登录Openstack云平台时会输入用户名,而Openstack云平台会给用户分配项目标识Talent-ID。往往一个用户可能存在多个项目,但是只有同一个项目的集群才能够进行环境的统一部署,为此,需要验证用户在Openstack云平台的项目标识。具体的,如图3所示,步骤104包括:步骤1041,在用户登录Openstack云平台时,获取Openstack云平台提供的项目标识;步骤1042,若所述项目标识唯一确定,则验证通过,并获取所述项目标识对应的Openstack云平台应用程序编程接口API地址;若所述项目标识不唯一确定,则流程结束。在用户登录在Openstack云平台时,若用户只有一个Talent-ID,即可根据用户信息获取到该Talent-ID并验证该Talent-ID的有效性,不需要用户输入。当然,若用户在登录Openstack云平台时也输入了Talent-ID,则直接进行Talent-ID的有效性验证。而在上述内容中了解到,一个用户可能存在多个项目,那么用户登录时,由于无法确定使用哪个项目,还需要提示用户输入Talent-ID,获取该Talent-ID验证其有效性。在验证通过后,就可以根据该Talent-ID获取到对应的Openstack云平台应用API地址。对于没有验证通过的,流程结束,另外,还可以提示用户重新输入Talent-ID。在发送创建请求POST请求后,会收到返回的请求应答,但是该应答不能反映虚拟机是否创建成功,因此,为了掌握虚拟机创建是否成功进行后续的处理操作,如图4所示,在上述实施例的基础上,所述方法还包括:步骤105,在接收到创建请求应答后,按照预设周期查询Openstack云平台是否创建虚拟机成功;步骤106,若获取到虚拟机创建成功消息,且接收到用户脚本文件执行成功反馈消息后,根据所述API地址进行API服务判断;步骤107,在获取到虚拟机创建失败消息或创建超时,返回发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台的步骤。在接收到POST请求应答后,按照预设周期去查询Openstack云平台是否创建虚拟机成功,如通过发送虚拟机创建成功查询消息,看是否能够收到返回相应的创建成功消息。在创建成功后,Openstack云平台会调用用户脚本文件User-date部署所需环境,并在执行完毕会主动反馈消息。对于由于故障而在无法启动服务的情况,为了保证服务启动,在获取到虚拟机创建成功消息以及接收到用户脚本文件执行成功反馈消息后,对之前获取到的API地址位置还要进行服务判断。若获取到虚拟机创建失败或者创建超时,返回步骤104,重新创建虚拟机,而之前失败的虚拟机相关数据信息要销毁,以免数据互相影响。其中,所述方法还包括:步骤108,在API服务判断的结果是API服务已启动时,获取已创建虚拟机的详细信息进行显示,所述详细信息至少包括每个虚拟机对应的浮动地址。经过API服务判断后,其结果为API服务已启动,为了方便用户后期的操作,会获取已创建虚拟机的详细信息进行显示,如每个虚拟机对应的浮动地址FloatingIP。其中获取已创建虚拟机的详细信息的实现可以通过调用nova命令来完成。若API服务有问题,则提示用户服务出现问题的部分,以便用户进行修改。综上所述,本发明实施例的方法,首先会进行项目标识验证,在验证后根据虚拟机数量确定创建请求数量,并且提前申请与虚拟机数量相同的浮动地址,可以根据浮动地址由用户脚本文件模板生成所需的用户脚本文件,从而Openstack云平台接收到创建请求后同时建立用户所需的虚拟机,并调用该用户脚本文件完成所需环境的部署,操作简单,不需要操作人员去分开部署虚拟机环境,也就避免了不同人搭建环境出现不一致、重复性劳动等问题。如图5所示,本发明的实施例还提供了一种基于Openstack创建集群环境的装置,包括:处理模块501,用于根据用户设置虚拟机数量确定虚拟机创建请求数量以及向Openstack云平台申请与虚拟机数量相同的浮动地址;生成模块502,用于根据Openstack云平台分配的浮动地址生成用户脚本文件;发送模块503,用于发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台,以使Openstack云平台根据所述浮动地址创建虚拟机并在创建完毕后调用所述用户脚本文件对用户所需环境进行部署。其中,所述装置还包括:验证模块,用于验证用户在Openstack云平台的项目标识。其中,所述验证模块包括:获取子模块,用于在用户登录Openstack云平台时,获取Openstack云平台提供的项目标识;验证子模块,用于若所述项目标识唯一确定,则验证通过,并获取所述项 目标识对应的Openstack云平台应用程序编程接口API地址;若所述项目标识不唯一确定,则流程结束。其中,所述装置还包括:查询模块,用于在接收到创建请求应答后,按照预设周期查询Openstack云平台是否创建虚拟机成功;服务判断模块,用于若获取到虚拟机创建成功消息,且接收到用户脚本文件执行成功反馈消息后,根据所述API地址进行API服务判断;重创建模块,用于在获取到虚拟机创建失败消息或创建超时,返回发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台的步骤。其中,所述装置还包括:显示模块,用于在API服务判断的结果是API服务已启动时,获取已创建虚拟机的详细信息进行显示,所述详细信息至少包括每个虚拟机对应的浮动地址。其中,所述用户脚本文件中至少定义了虚拟机使用的浮动地址和虚拟机角色,以使Openstack云平台能够根据所述用户脚本文件进行包括:等待网络通信可用、更新系统软件包、安装设定软件包、配置静态防火墙Iptables规则、配置kubernetes集群、启动相关服务和验证服务可用的操作。本发明实施例的装置,处理模块501根据虚拟机数量确定创建请求数量,同时建立用户所需的虚拟机,并且提前申请与虚拟机数量相同的浮动地址。生成模块502根据浮动地址由用户脚本文件模板生成所需的用户脚本文件。在发送模块503发送创建请求、所述浮动地址以及用户脚本文件至Openstack云平台后,Openstack云平台同时创建用户所需的全部虚拟机,并调用该用户脚本文件完成所需环境的部署,操作简单,不需要操作人员去分开部署虚拟机环境,也就避免了不同人搭建环境出现不一致、重复性劳动等问题。需要说明的是,该装置是应用了上述基于Openstack创建集群环境的方法的装置,上述基于Openstack创建集群环境的方法的实现方式适用于该装置,也能达到相同的技术效果。本发明实施例还提供了一种基于Openstack创建集群环境的系统,包括如上所述的基于Openstack创建集群环境的装置。本发明实施例的系统,根据虚拟机数量确定创建请求数量,同时建立用户所需的虚拟机,并且提前申请与虚拟机数量相同的浮动地址,可以根据浮动地址由用户脚本文件模板生成所需的用户脚本文件,而Openstack云平台接收到创建请求后创建虚拟机并调用该用户脚本文件完成所需环境的部署,操作简单,不需要操作人员去分开部署虚拟机环境,也就避免了不同人搭建环境出现不一致、重复性劳动等问题。需要说明的是,该系统是包括了上述基于Openstack创建集群环境的装置的系统,上述基于Openstack创建集群环境的装置的实现方式适用于该系统,也能达到相同的技术效果。进一步需要说明的是,此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。范例性实施例是参考该些附图来描述于下。许多不同的形式和实施例是可行而不偏离本发明精神及教示,因此,本揭示不应被建构成为在此所提出范例性实施例的限制。更确切地说,这些范例性实施例被提供以使得本揭示会是完善又完整,且会将本发明范围传达给那些熟知此项技术的人士。在该些图式中,组件尺寸及相对尺寸也许基于清晰起见而被夸大。在此所使用的术语只是基于描述特定范例性实施例目的,并无意成为限制用。如在此所使用地,除非该内文清楚地另有所指,否则该单数形式“一”、“一个”和“该”是意欲将该些多个形式也纳入。会进一步了解到该些术语“包含”及/或“包括”在使用于本说明书时,表示所述特征、整数、步骤、操作、构件及/或组件的存在,但不排除一或更多其它特征、整数、步骤、操作、构件、组件及/或其族群的存在或增加。除非另有所示,陈述时,一值范围包含该范围的上下限及其间的任何子范围。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1