发明内容
有鉴于此,本发明提出一种电子装置、云***软件自动部署方法及存储介质,能够提高云***中软件部署的效率及准确率。
首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的云***软件自动部署程序,所述云***软件自动部署程序被所述处理器执行时实现如下步骤:
A1、接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;
A2、根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的目标服务器的操作***类型;
A3、根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
A4、在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
进一步地,在所述步骤A4中,所述在所述目标服务器上执行确定的操作步骤,包括获取所述目标软件对应的软件部署包的步骤。
进一步地,所述获取所述目标软件对应的软件部署包的步骤包括:
从预先确定的数据库中查找与所述目标软件对应的软件部署包,若查找到,则获取查找到的目标软件部署包;
或者,若查找不到,则从预先确定的源程序代码库中查找出所述目标软件对应的源程序代码,并将查找到的源程序代码进行压缩打包,生成对应的目标软件部署包。
进一步地,所述获取所述目标软件对应的软件部署包的步骤包括:
向所述web端发送获取所述目标软件的软件部署包的指令;
接收所述web端上传的所述软件部署包。
进一步地,所述目标软件部署包的类型包括:war文件,jar文件,rpm文件,exe文件;
所述目标软件的部署类型包括:安装、更新、以及回滚。
此外,为实现上述目的,本发明还提供一种云***软件自动部署方法,该方法包括如下步骤:
S1、接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;
S2、根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的目标服务器的操作***类型;
S3、根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
S4、在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
进一步地,在所述步骤S4中,所述在所述目标服务器上执行确定的操作步骤,包括获取所述目标软件对应的软件部署包的步骤。
进一步地,所述获取所述目标软件对应的软件部署包的步骤包括:
从预先确定的数据库中查找与所述目标软件对应的软件部署包,若查找到,则获取查找到的目标软件部署包;
或者,若查找不到,则从预先确定的源程序代码库中查找出所述目标软件对应的源程序代码,并将查找到的源程序代码进行压缩打包,生成对应的目标软件部署包。
进一步地,所述获取所述目标软件对应的软件部署包的步骤包括:
向所述web端发送获取所述目标软件的软件部署包的指令;
接收所述web端上传的所述软件部署包。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有云***软件自动部署程序,所述云***软件自动部署程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的云***软件自动部署方法的步骤。
相较于现有技术,本发明所提出的电子装置、云***软件自动部署及存储介质,通过接收web端发送的云***软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;然后根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的操作***类型;再根据预存的操作***、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器上所需的操作步骤;最后在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。能够提高云***中软件部署的效率及准确率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-14的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作***和各类应用软件,例如云***软件自动部署程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的云***软件自动部署程序等。
网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。
通信总线14用于实现组件11-13之间的通信连接。
图1仅示出了具有组件11-14以及云***软件自动部署程序的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,电子装置10还可以包括用户接口(图1中未示出),用户接口可以包括显示器、输入单元比如键盘,其中,用户接口还可以包括标准的有线接口、无线接口等。
可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED触摸器等。进一步地,显示器也可称为显示屏或显示单元,用于显示在电子装置10中处理信息以及用于显示可视化的用户界面。
在一实施例中,存储器11中存储的云***软件自动部署程序被处理器12执行时,实现如下操作:
A、接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件的软件部署包的类型、以及目标软件的部署类型;其中,所述目标软件的软件部署包的类型可以是,例如war文件,jar文件,rpm文件,exe文件等;所述目标软件的部署类型可以是,例如软件的安装、更新、以及回滚等软件的部署;
B、根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的目标服务器的操作***类型;其中,操作***类型可以是,例如Linux,windows等操作***;
C、根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
D、在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
在本申请的实施例中,所述web端包括软件部署操作界面,所述软件部署操作界面包括供用户选择目标服务器地址的第一选择项、供用户选择目标软件的部署类型的第二选择项、以及供用户输入目标软件的软件部署包的类型的输入框;所述web端根据用户通过所述第一选择项选择的目标服务器地址、用户通过所述第二选择项选择的目标软件的部署类型、以及用户通过所述输入框输入的目标软件的软件部署包的类型生成所述软件部署指令;所述web端将所述软件部署指令发送至预先确定的软件部署服务器,在本实施例中,所述预先确定的软件部署服务器为电子装置10。
所述预先确定的软件部署服务器接收所述web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;其中,所述目标软件部署包的类型可以是,例如war,jar,rpm,exe等软件;所述目标软件的部署类型可以是,例如软件的安装、更新、以及回滚等软件的部署;
例如,在一实施例中,假设所述目标软件的类别为war,目标服务器的地址对应为预先确定的tomcat服务器的地址,目标软件的部署类型为将war软件安装并运行到对应的tomcat服务器,所述tomcat服务器对应的操作***为windows,需要说明的是,通常为了让java应用在很多操作***上能够运行,会特别为某些应用普遍的操作***开发对应的JRE,如果在不同的操作***上能下载到对应这个操作***的JRE,那么在对应的操作***上就可以进行java应用程序的部署。但是,并不是能让JVM运行的操作***,tomcat就能去支持它,比如:手机中就有JVM,但是手机就不支持tomcat,支持tomcat的操作***主要根据apache组织是否开发出在某个操作***上的tomcat版本。
由于War包一般是在进行Web开发时,通常对应一个网站Project下的所有源码的集合,而War包里面包含前台HTML/CSS/JS的代码,也包含Java的代码。
当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布。War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压。Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型***和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
根据预存的操作***、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定将war类型软件部署到对应的tomcat服务器的步骤包括:配置jAVA运行环境,部署tomcat服务器,部署web项目的war包到tomcat服务器;其中配置java运行环境的步骤包括:下载并安装JDK,设置JDK环境变量,验证是否JDK环境变量设置成功;部署tomcat服务器的步骤包括:下载Tomcat到本地硬盘,设置Tomcat环境变量,验证Tomcat环境变量的配置是否成功;部署web项目的war包到tomcat服务器的步骤包括:FTP获取war包和sql脚本,配置Web项目的虚拟目录,访问web项目的登录页。
进一步地,在本申请的一些实施例中,所述在所述目标服务器上执行确定的操作步骤中,需要获取所述目标软件对应的软件部署包的步骤,其中获取所述目标软件对应的软件部署包的步骤可以是,例如:
从预先确定的数据库中查找与所述目标软件对应的软件安装包,若查找到,则获取查找到的目标软件部署包,或者,若查找不到,则从预先确定的源程序代码库中查找出所述目标软件对应的源程序代码,并将查找到的源程序代码进行压缩打包,生成对应的目标软件部署包。
进一步地,可以将生成的目标软件部署包存入所述预先确定的数据库中。
进一步地,在本申请另一优选的实施例中,获取所述目标软件对应的软件部署包的步骤可以是,例如:向所述web端发送获取软件部署包的指令;所述web端接收到所述文件上传指令后,生成文件上传操作界面;所述文件上传操作界面包括供用户选择上传文件的第三选择项;用户可以通过所述第三选择项选择所述目标软件的软件部署包,所述web端响应用户的选择,将所述目标软件的软件部署包发送至所述预先确定的软件部署服务器,所述预先确定的软件部署服务器接收所述web端上传的软件部署包,在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的安装。
其中,所述软件部署包可以是,例如软件安装包,软件更新包、或者软件回滚包等。
由上述事实施例可知,本发明提出的电子装置通过接收web端发送的云***软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;然后根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的操作***类型;再根据预存的操作***、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器上所需的操作步骤;最后在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。能够提高云***中软件部署的效率及准确率。
进一步需要说明的是,本发明的云***软件自动部署程序依据其各部分所实现的功能不同,可用具有相同功能的程序模块进行描述。请参阅图2所示,是本发明电子装置一实施例中云***软件自动部署程序的程序模块示意图。本实施例中,云***软件自动部署程序依据其各部分所实现的功能的不同,可以被分割成获取模块201、第一确定模块202、第二确定模块203、以及部署模块204。由上面的描述可知,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述云***软件自动部署程序在电子装置10中的执行过程。所述模块201-204所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:
获取模块201用于在接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;
第一确定模块202用于根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的服务器的操作***类型;
第二确定模块203用于根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
部署模块204用于在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
此外,本发明还提出一种云***软件自动部署方法,请参阅图3所示,所述云***软件自动部署方法包括如下步骤:
步骤S301,接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件的软件部署包的类型、以及目标软件的部署类型;其中,所述目标软件的软件部署包的类型可以是,例如war文件,jar文件,rpm文件,exe文件等;所述目标软件的部署类型可以是,例如软件的安装、更新、以及回滚等软件的部署;
步骤S302,根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的目标服务器的操作***类型;其中,操作***类型可以是,例如Linux,windows等操作***;
步骤S303,根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
步骤S304,在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
在本申请的实施例中,所述web端包括软件部署操作界面,所述软件部署操作界面包括供用户选择目标服务器地址的第一选择项、供用户选择目标软件的部署类型的第二选择项、以及供用户输入目标软件的软件部署包的类型的输入框;所述web端根据用户通过所述第一选择项选择的目标服务器地址、用户通过所述第二选择项选择的目标软件的部署类型、以及用户通过所述输入框输入的目标软件的软件部署包的类型生成所述软件部署指令;所述web端将所述软件部署指令发送至预先确定的软件部署服务器,在本实施例中,所述预先确定的软件部署服务器为电子装置10。
所述预先确定的软件部署服务器接收所述web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;其中,所述目标软件部署包的类型可以是,例如war,jar,rpm,exe等软件;所述目标软件的部署类型可以是,例如软件的安装、更新、以及回滚等软件的部署;
例如,在一实施例中,假设所述目标软件的类别为war,目标服务器的地址对应为预先确定的tomcat服务器的地址,目标软件的部署类型为将war软件安装并运行到对应的tomcat服务器,所述tomcat服务器对应的操作***为windows,需要说明的是,通常为了让java应用在很多操作***上能够运行,会特别为某些应用普遍的操作***开发对应的JRE,如果在不同的操作***上能下载到对应这个操作***的JRE,那么在对应的操作***上就可以进行java应用程序的部署。但是,并不是能让JVM运行的操作***,tomcat就能去支持它,比如:手机中就有JVM,但是手机就不支持tomcat,支持tomcat的操作***主要根据apache组织是否开发出在某个操作***上的tomcat版本。
由于War包一般是在进行Web开发时,通常对应一个网站Project下的所有源码的集合,而War包里面包含前台HTML/CSS/JS的代码,也包含Java的代码。
当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布。War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压。Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型***和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
根据预存的操作***、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定将war类型软件部署到对应的tomcat服务器的步骤包括:配置jAVA运行环境,部署tomcat服务器,部署web项目的war包到tomcat服务器;其中配置java运行环境的步骤包括:下载并安装JDK,设置JDK环境变量,验证是否JDK环境变量设置成功;部署tomcat服务器的步骤包括:下载Tomcat到本地硬盘,设置Tomcat环境变量,验证Tomcat环境变量的配置是否成功;部署web项目的war包到tomcat服务器的步骤包括:FTP获取war包和sql脚本,配置Web项目的虚拟目录,访问web项目的登录页。
进一步地,在本申请的一些实施例中,所述在所述目标服务器上执行确定的操作步骤中,需要获取所述目标软件对应的软件部署包的步骤,其中获取所述目标软件对应的软件部署包的步骤可以是,例如:
从预先确定的数据库中查找与所述目标软件对应的软件安装包,若查找到,则获取查找到的目标软件部署包,或者,若查找不到,则从预先确定的源程序代码库中查找出所述目标软件对应的源程序代码,并将查找到的源程序代码进行压缩打包,生成对应的目标软件部署包。
进一步地,可以将生成的目标软件部署包存入所述预先确定的数据库中。
进一步地,在本申请另一优选的实施例中,获取所述目标软件对应的软件部署包的步骤可以是,例如:向所述web端发送获取软件部署包的指令;所述web端接收到所述文件上传指令后,生成文件上传操作界面;所述文件上传操作界面包括供用户选择上传文件的第三选择项;用户可以通过所述第三选择项选择所述目标软件的软件部署包,所述web端响应用户的选择,将所述目标软件的软件部署包发送至所述预先确定的软件部署服务器,所述预先确定的软件部署服务器接收所述web端上传的软件部署包,在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的安装。
其中,所述软件部署包可以是,例如软件安装包,软件更新包、或者软件回滚包等。
由上述事实施例可知,本发明提出的云***软件自动部署方法通过接收web端发送的云***软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件部署包的类型、以及目标软件的部署类型;然后根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的操作***类型;再根据预存的操作***、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器上所需的操作步骤;最后在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。能够提高云***中软件部署的效率及准确率。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有云***软件自动部署程序,所述云***软件自动部署程序被处理器执行时实现如下操作:
接收web端发送的软件部署指令,从接收的软件部署指令中获取目标服务器地址、目标软件的软件部署包的类型、以及目标软件的部署类型;
根据预存的服务器地址与操作***类型之间的第一映射关系,确定所述目标服务器地址对应的目标服务器的操作***类型;
根据预存的操作***类型、软件部署包的类型与软件的部署类型对应的操作步骤之间的第二映射关系,确定根据所述目标软件的部署类型,将所述目标软件部署在所述目标服务器所需的操作步骤;
在所述目标服务器上执行确定的操作步骤,自动完成所述目标软件的部署。
本发明计算机可读存储介质具体实施方式与上述电子装置以及基于负载权重调度发布升级版本应用的方法各实施例基本相同,在此不作累述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。