云平台自动部署方法及系统与流程

文档序号:19827785发布日期:2020-02-04 12:03阅读:1007来源:国知局
云平台自动部署方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种云平台自动部署方法及系统。



背景技术:

云计算技术的发展以及所带来的巨大效益的提升,使得各行业都开始把云计算技术引入到行业中,在降低软硬件成本的同时,也提升了行业的服务质量。在整个云平台的使用周期中,部署环节是不可或缺的重要一部分,部署过程的优劣直接影响到云平台运行的性能与效率。

大规模的云平台部署,由于现实物理硬件设备存在差异性,使得部署过程变得繁琐而复杂,整个云平台的运行风险变得更加显著。使用传统方式部署云平台过程中,为保证后续云平台具有较高的运行性能,需要投入大量的人力、物力和财力作为后盾。并且很多系统软件中需要同时配置复杂的通信网络,部署基于linux和基于windows的应用软件及其配置文件。

目前,现有技术是利用ansible这类自动化部署框架完成基于云平台的分布式软件部署和管理。引入这类框架后,在大部分相同的服务器上频繁部署大致相同的服务的场景中实现自动化部署,提升云平台的部署效率。

但是,现有的基于ansible的云平台自动化部署系统,不能满足多类操作系统的部署。由于ansible框架基于linux系统使用python语言开发,当前的自动化部署系统大多都只是满足linux下应用软件的部署。如果需要把基于windows的应用软件部署到各个windows的主机上,现有系统不能支持;不支持远程配置远端windows主机集群的网络,在有些行业方向,例如轨道交通软件,网域配置复杂,现有的自动化部署系统不能满足多网域多网卡的网络配置,如果手动配置这些网络环境,则耗时非常多;脚本命令逻辑复杂不好维护,现有的自动化部署系统的脚本命令是基于业务编写,不能做到通用,软件环境或软件名字发生改变后需要重新编写脚本代码。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种云平台自动部署方法及系统。

本发明实施例提供一种云平台自动部署方法,应用于云平台主控终端,包括:

调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;

若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;

若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

可选地,在所述若所述被控终端为windows集群中的windows终端,则向所述被控终端发送powershell脚本命令,以使所述被控终端完成应用软件的部署之后,所述方法还包括:

向所述被控终端发送用于完成被控终端网卡的网络配置的powershell脚本命令,以使所述被控终端完成对被控终端网卡的网络配置。

可选地,所述被控终端网卡的网络配置,包括:被控终端网卡不同网域的网络配置以及被控终端网卡的网络配置的清理。

可选地,所述被控终端为windows终端时,所述windows终端预先安装有powershell,并开启远程管理服务和powershell远程管理权限。

可选地,所述向所述被控终端发送用于部署应用软件的ansible脚本命令,包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对linux终端的应用软件部署代码并执行,使所述针对linux终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的ansible脚本命令。

可选地,所述向所述被控终端发送用于部署应用软件的powershell脚本命令,包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对windows终端的应用软件部署代码并执行,使所述针对windows终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的powershell脚本命令。

本发明实施例提供一种云平台自动部署系统,应用于云平台主控终端,包括:

连接模块,用于调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;

第一发送模块,用于若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;

第二发送模块,用于若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

可选地,所述云平台自动部署系统还包括:

第三发送模块,用于向所述被控终端发送用于完成被控终端网卡的网络配置的powershell脚本命令,以使所述被控终端完成对被控终端网卡的网络配置。

本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。

本发明实施例提供的云平台自动部署方法及系统,通过调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端,若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署,若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署,由此,能够实现对linux和windows两类操作系统终端的应用软件的自动化部署,降低了现有的云平台自动化部署系统对操作系统的依赖,效率高、可靠性高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种云平台自动部署方法的流程示意图;

图2为本发明一实施例提供的一种云平台自动部署系统的结构示意图;

图3为本发明一实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了本发明一实施例提供的一种云平台自动部署方法的流程示意图,如图1所示,本实施例的云平台自动部署方法,包括:

s1、调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端。

需要说明的是,本实施例所述云平台自动部署方法的执行主体为云平台主控终端。

可以理解的是,ansible是现有的一种自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

可以理解的是,由于ansible基于ssh(安全外壳协议)开发,因此控制linux操作系统无需再安装客户端,本实施例可以调用ansible工具,通过ssh的公钥认证连接linux集群中的linux终端。

可以理解的是,本实施例可以调用ansible工具,通过预先编写好的ansible脚本命令连接windows集群中的windows终端。

s2、若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署。

可以理解的是,由于ansible基于linux系统使用python语言开发,因此云平台主控终端可以通过向已经连接的linux集群中的linux终端发送用于部署应用软件的ansible脚本命令,就能够使所述linux终端根据所述用于部署应用软件的ansible脚本命令,完成应用软件的部署。

s3、若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

可以理解的是,所述被控终端为windows终端时,所述windows终端预先安装有powershell,并开启远程管理服务和powershell远程管理权限,修改windows终端防火墙策略,打开powershell远程管理需要的端口,进而云平台主控终端可以通过向已经连接的windows集群中的windows终端发送用于部署应用软件的powershell脚本命令,以使所述windows终端根据所述用于部署应用软件的powershell脚本命令,完成应用软件的部署。

可以理解的是,powershell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.netframework的强大功能。由于单利用ansible工具不能实现对windows这类操作系统终端,本实施例是通过将ansible工具与powershell相结合,实现对linux和windows两类操作系统终端的应用软件的自动化部署。

本实施例提供的云平台自动部署方法,通过调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端,若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署,若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署,由此,能够实现对linux和windows两类操作系统终端的应用软件的自动化部署,降低了现有的云平台自动化部署系统对操作系统的依赖,效率高、可靠性高。

进一步地,在上述实施例的基础上,在所述步骤s3若所述被控终端为windows集群中的windows终端,则向所述被控终端发送powershell脚本命令,以使所述被控终端完成应用软件的部署之后,所述方法还可以包括:

向所述被控终端发送用于完成被控终端网卡的网络配置的powershell脚本命令,以使所述被控终端完成对被控终端网卡的网络配置。

具体地,所述被控终端网卡的网络配置,可以包括:被控终端网卡不同网域的网络配置(如网卡ip(网络之间互连的协议)、子网掩码和网关等网络配置)以及被控终端网卡的网络配置的清理等。

可以理解的是,本实施例能够利用powershell脚本命令,快速、自动远程配置远端的windows终端集群的网络,网络配置耗时低。

进一步地,在上述实施例的基础上,所述步骤s2中的“向所述被控终端发送用于部署应用软件的ansible脚本命令”,可以包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对linux终端的应用软件部署代码并执行,使所述针对linux终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的ansible脚本命令。

可以理解的是,本实施例可以针对待部署的各类应用软件,预先建立的各类应用软件的脚本代码模板,在云平台主控终端调用ansible工具连接linux集群中的linux终端后,利用预先建立的各类应用软件的脚本代码模板,生成针对linux终端的应用软件部署代码并执行,使所述针对linux终端的应用软件部署代码自动向已连接的linux集群中的linux终端发送用于部署应用软件的ansible脚本命令,以使所述linux终端完成应用软件的部署。

进一步地,在上述实施例的基础上,所述步骤s3中的“向所述被控终端发送用于部署应用软件的powershell脚本命令”,可以包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对windows终端的应用软件部署代码并执行,使所述针对windows终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的powershell脚本命令。

可以理解的是,本实施例可以针对待部署的各类应用软件,预先建立的各类应用软件的脚本代码模板,在云平台主控终端调用ansible工具连接windows集群中的windows终端后,利用预先建立的各类应用软件的脚本代码模板,生成针对windows终端的应用软件部署代码并执行,使所述针对windows终端的应用软件部署代码自动向已连接的windows集群中的windows终端发送用于部署应用软件的powershell脚本命令,以使所述windows终端完成应用软件的部署。

可以理解的是,本实施例利用预先建立的各类应用软件的脚本代码模板,生成针对linux/windows终端的应用软件部署代码并执行,这样即使某个软件发生配置或网络变化,也不用修改部署代码,只需修改对应的配置文件。

本实施例提供的云平台自动部署方法,实现了高效率、高可靠性、支持linux和windows两类不同操作系统的网络自动化配置和软件自动化部署,降低了现有的云平台自动化部署系统对操作系统的依赖,并通过预先建立的各类应用软件的脚本代码模板的方式自动生成部署代码,大幅度提高了系统的可维护性和扩展性,减少了因增删软件或者配置导致的修改代码的工作。

图2示出了本发明一实施例提供的一种云平台自动部署系统的结构示意图,如图2所示,本实施例的云平台自动部署系统,包括:连接模块21、第一发送模块22和第二发送模块23;其中:

所述连接模块21,用于调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;

所述第一发送模块22,用于若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;

所述第二发送模块23,用于若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

具体地,所述连接模块21调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;所述第一发送模块22若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;所述第二发送模块23若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

需要说明的是,本实施例所述云平台自动部署系统的执行主体为云平台主控终端。

可以理解的是,ansible是现有的一种自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

可以理解的是,由于ansible基于ssh(安全外壳协议)开发,因此控制linux操作系统无需再安装客户端,本实施例所述连接模块21可以调用ansible工具,通过ssh的公钥认证连接linux集群中的linux终端。

可以理解的是,本实施例所述连接模块21可以调用ansible工具,通过预先编写好的ansible脚本命令连接windows集群中的windows终端。

可以理解的是,由于ansible基于linux系统使用python语言开发,因此云平台主控终端的第一发送模块22可以通过向已经连接的linux集群中的linux终端发送用于部署应用软件的ansible脚本命令,就能够使所述linux终端根据所述用于部署应用软件的ansible脚本命令,完成应用软件的部署。

可以理解的是,所述被控终端为windows终端时,所述windows终端预先安装有powershell,并开启远程管理服务和powershell远程管理权限,修改windows终端防火墙策略,打开powershell远程管理需要的端口,进而云平台主控终端的第二发送模块23可以通过向已经连接的windows集群中的windows终端发送用于部署应用软件的powershell脚本命令,以使所述windows终端根据所述用于部署应用软件的powershell脚本命令,完成应用软件的部署。

可以理解的是,powershell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.netframework的强大功能。由于单利用ansible工具不能实现对windows这类操作系统终端,本实施例是通过将ansible工具与powershell相结合,实现对linux和windows两类操作系统终端的应用软件的自动化部署。

本实施例提供的云平台自动部署系统,能够实现对linux和windows两类操作系统终端的应用软件的自动化部署,降低了现有的云平台自动化部署系统对操作系统的依赖,效率高、可靠性高。

进一步地,在上述实施例的基础上,本实施例所述云平台自动部署系统,还可以包括图中未示出的:

第三发送模块,用于向所述被控终端发送用于完成被控终端网卡的网络配置的powershell脚本命令,以使所述被控终端完成对被控终端网卡的网络配置。

具体地,所述被控终端网卡的网络配置,可以包括:被控终端网卡不同网域的网络配置(如网卡ip(网络之间互连的协议)、子网掩码和网关等网络配置)以及被控终端网卡的网络配置的清理等。

可以理解的是,本实施例能够利用powershell脚本命令,快速、自动远程配置远端的windows终端集群的网络,网络配置耗时低。

进一步地,在上述实施例的基础上,所述第一发送模块22中的“向所述被控终端发送用于部署应用软件的ansible脚本命令”,可以包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对linux终端的应用软件部署代码并执行,使所述针对linux终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的ansible脚本命令。

可以理解的是,本实施例可以针对待部署的各类应用软件,预先建立的各类应用软件的脚本代码模板,在云平台主控终端的连接模块21调用ansible工具连接linux集群中的linux终端后,第一发送模块22可利用预先建立的各类应用软件的脚本代码模板,生成针对linux终端的应用软件部署代码并执行,使所述针对linux终端的应用软件部署代码自动向已连接的linux集群中的linux终端发送用于部署应用软件的ansible脚本命令,以使所述linux终端完成应用软件的部署。

进一步地,在上述实施例的基础上,所述第二发送模块23中的“向所述被控终端发送用于部署应用软件的powershell脚本命令”,可以包括:

利用预先建立的各类应用软件的脚本代码模板,生成针对windows终端的应用软件部署代码并执行,使所述针对windows终端的应用软件部署代码自动向所述被控终端发送用于部署应用软件的powershell脚本命令。

可以理解的是,本实施例可以针对待部署的各类应用软件,预先建立的各类应用软件的脚本代码模板,在云平台主控终端的连接模块21调用ansible工具连接windows集群中的windows终端后,第二发送模块23可以利用预先建立的各类应用软件的脚本代码模板,生成针对windows终端的应用软件部署代码并执行,使所述针对windows终端的应用软件部署代码自动向已连接的windows集群中的windows终端发送用于部署应用软件的powershell脚本命令,以使所述windows终端完成应用软件的部署。

可以理解的是,本实施例利用预先建立的各类应用软件的脚本代码模板,生成针对linux/windows终端的应用软件部署代码并执行,这样即使某个软件发生配置或网络变化,也不用修改部署代码,只需修改对应的配置文件。

本实施例提供的云平台自动部署系统,实现了高效率、高可靠性、支持linux和windows两类不同操作系统的网络自动化配置和软件自动化部署,降低了现有的云平台自动化部署系统对操作系统的依赖,并通过预先建立的各类应用软件的脚本代码模板的方式自动生成部署代码,大幅度提高了系统的可维护性和扩展性,减少了因增删软件或者配置导致的修改代码的工作。

本发明实施例提供的云平台自动部署系统,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图3示出了本发明一实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括存储器302、处理器301、总线303及存储在存储器302上并可在处理器301上运行的计算机程序,其中,处理器301,存储器302通过总线303完成相互间的通信。所述处理器301执行所述计算机程序时实现上述方法的步骤,例如包括:调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤,例如包括:调用ansible工具与被控终端建立通信连接,所述被控终端包括:windows集群中的windows终端和linux集群中的linux终端;若所述被控终端为linux集群中的linux终端,则向所述被控终端发送用于部署应用软件的ansible脚本命令,以使所述被控终端完成应用软件的部署;若所述被控终端为windows集群中的windows终端,则向所述被控终端发送用于部署应用软件的powershell脚本命令,以使所述被控终端完成应用软件的部署。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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