基于YAML的自动化部署方法、系统、电子设备及存储介质与流程

文档序号:33507049发布日期:2023-03-18 02:57阅读:112来源:国知局
基于YAML的自动化部署方法、系统、电子设备及存储介质与流程
基于yaml的自动化部署方法、系统、电子设备及存储介质
技术领域
1.本技术涉及运维技术领域,特别涉及一种基于yaml的自动化部署方法、系统、电子设备及存储介质。


背景技术:

2.随着互联网经济的发展,开发的服务也越来越多,而最终我们开发的服务都需要部署到服务器上,以使得可以在任何计算机上运行这些服务,因此自动化部署技术在运维技术领域得到重视。
3.然而现有的针对服务器的部署技术,大都基于网络页面,需要在浏览器访问特定的页面;如果在没有图形用户接口(gui,graphical user interface)的linux环境中,将无法进行服务器部署。同时,现有部署技术通常需要在目标服务器上安装客户端,而安装操作繁琐且在一定程度上会引起新的安全漏洞风险。
4.因此,亟需一种适用性更广且安全性更高的自动化部署方法,以解决现有技术的上述技术问题。


技术实现要素:

5.为了解决现有技术的不足,本技术的主要目的在于提供一种基于yaml的自动化部署方法、系统、电子设备及存储介质,以解决现有技术的上述技术问题。
6.为了达到上述目的,第一方面本技术提供了一种基于yaml的自动化部署方法,所述方法包括:
7.在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
8.所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
9.所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
10.所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
11.在一些实施例中,所述第一配置文件及第二配置文件的解析过程包括:
12.查询版本声明并依据所述版本声明确定解析语法;
13.基于所述解析语法检查所述第一配置文件及所述第二配置文件的语法规范;
14.若检测所述第一配置文件及所述第二配置文件内存在变量,则利用变量应用替换变量值。
15.在一些实施例中,所述部署文件存储在文件服务器中,所述获取部署文件包括:
16.所述文件服务器基于接收到的目标服务器的下载请求,验证登录用户的合法性后
发放令牌至所述目标服务器;
17.所述目标服务器再次发送下载请求至所述文件服务器时,所述文件服务器验证是否存在所述令牌;
18.若存在所述令牌则验证成功并返回所述下载请求对应的部署文件至所述目标服务器。
19.在一些实施例中,所述方法还包括对所述第一配置文件和第二配置文件内的参数进行安全保密,所述安全保密过程包括:
20.所述文件服务器根据预设的口令及随机生成的盐,生成加密密钥;
21.所述文件服务器基于加密密钥及对称加密算法对所述第一配置文件和第二配置文件的参数进行加密;
22.所述主服务器获取加密后的第一配置文件和第二配置文件后,利用所述预设的口令和盐还原所述加密密钥并根据所述加密密钥对加密后的参数进行解密。
23.在一些实施例中,所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署之前,所述方法还包括:
24.所述目标服务器根据预设规则及进程id检测原始服务的运行状态;
25.若所述原始服务处于运行状态,则所述目标服务器停止运行所述原始服务;
26.所述目标服务器备份所述原始服务至预设位置以便在所述目标服务失败时调用原始服务。
27.在一些实施例中,所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器,还包括:
28.所述部署文件部署至目标服务器后,启动所述目标服务器并查询目标服务器当前运行的服务版本;
29.若所述服务版本与所述目标服务版本一致,则部署成功;
30.若所述服务版本与所述目标服务版本不一致,则部署失败并打印失败信息以便进行修正。
31.在一些实施例中,所述方法还包括:
32.将解析后的所述第一配置文件及第二配置文件转换为结构体并存储在所述主服务器内。
33.第二方面,本技术提供了一种基于yaml的自动化部署系统,所述系统包括:
34.配置模块,用于在纯命令行模式下,启动主服务器,利用主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
35.所述配置模块,还用于利用所述主服务器基于所述部署服务器数据及安全通信协议,连接所述主服务器与目标服务器;
36.部署模块,用于利用所述主服务器检测部署命令并在检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
37.所述部署模块,还用于利用所述目标服务器获取目标服务对应的部署文件并基于
接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
38.第三方面,本技术提供了一种电子设备,所述电子设备包括:
39.一个或多个处理器;
40.以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
41.在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
42.所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
43.所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
44.所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
45.第四方面,本技术还提供了一种计算机可读存储介质,所述存储介质上存储计算机程序,所述计算机程序使得计算机执行如下操作:
46.在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
47.所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
48.所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
49.所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
50.本技术实现的有益效果为:
51.本技术提供了一种基于yaml的自动化部署方法,包括在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。实现了在纯命令行模式下对服务的自动化部署,适用范围广;此外,本技术基于yaml规范编译配置文件,具有更好的服务编排能力,可以定义服务间的依赖关系,进一步在配置文件中可设置加密参数以提高整个自动化部署流程的安全性;且无需在待部署服务器中安装其他软件,依赖少,配置简便。
附图说明
52.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
53.图1是本技术实施例提供的自动化部署方法第一示意图;
54.图2是本技术实施例提供的自动化部署方法第二示意图;
55.图3是本技术实施例提供的自动化部署系统架构图;
56.图4是本技术实施例提供的电子设备结构图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.应当理解,在本技术的描述中,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
59.还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
60.需要注意的是,术语“s1”、“s2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本技术,其仅仅是为了方便描述本技术的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
61.根据背景技术可知,传统的自动化部署方法通常是基于图形用户接口,需要在浏览器访问特定的网络网页来实现,因此在没有图形用户接口的linux环境中,无法进行自动化部署。为解决上述技术问题,本技术提供了一种基于yaml的自动化部署方法,以实现无需进入网页界面即可自动将服务部署到对应的目标服务器中。
62.实施例一
63.本技术实施例了提供一种自动化部署方法;具体的,如图1所示,应用本实施例公开的方法实现服务自动化部署的过程包括:
64.s10、连接主服务器与目标服务器以实现服务器配置。
65.上述主服务器与目标服务器的连接过程包括:
66.s11、在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据。
67.登录主服务器后,可通过shell命令启动自动化部署;主服务器启动自动化部署后,读取与目标服务器对应的第一配置文件,即hosts.yml文件,并对第一配置文件进行解析。其中主服务器为执行自动化部署的主要的服务器,需按照自动化部署软件以实现在目
标服务器中部署相应的服务的功能;此外,上述第一配置文件为按照yaml(yamlain't markup language,另一种标记语言)规范编写的文件,用于描述需要进行部署的待部署服务器的信息,在编译第一配置文件时需要指定待部署服务器ip、端口、用户名以及密码等信息,第一配置文件编译后存储在文件服务器中。yaml的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态;它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲;而且有精致的语法可以表示关系性(relational model)的数据。由于yaml使用空白字符和分行来分隔数据,使得它特别适合用grep/python/perl/ruby操作。
68.具体的,主服务器对第一配置文件的解析过程包括:
69.a1、根据第一配置文件第一行存放的版本声明,确定对应的解析语法,如version 1.6,不同的版本对应不同的解析语法。
70.a2、确定解析语法后,根据对应的解析语法对第一配置文件进行语法检查。
71.a3、检测第一配置文件中是否存在变量,若存在变量则用变量值替换变量引用。例如变量定义为val:x=1,变量引用为22${x}99,则用变量值替换变量引用后的值为22199;若变量为系统环境变量,则读取环境变量;环境变量名必须为大写;且以ts_为开头,例如ts_x,若不符合此规范,则该变量为非法变量。
72.a4、检测是否有参数加密,若存在参数加密,则根据预先设定好的对称加密算法(peb,passwordbased encryption)以及加密参数对参数进行解密。
73.具体的,在第一配置文件进行编译时,文件服务器会根据用户输入的口令(即预设的口令)以及随机生成的盐,生成加密密钥;文件服务器基于加密密钥以及对称加密算法对第一配置文件的一些参数进行加密。主服务器在接收到第一配置文件后,检测第一配置文件中是否存在有加密参数,若存在则依据预设的口令和盐还原加密密钥,并根据还原后的加密密钥对加密参数进行解密。其中,盐能够阻止字典攻击或预先计算的攻击,本身是一个随机的信息,相同的随机信息极不可能使用2次;将盐附加在口令上,通过对称加密算法经过迭代计算获取得到构建的加密密钥。优选的,在本技术实施例中,盐可以使用某个固定字符串的md5值,例如md5("stringnooneknows"),以加强安全性。
74.优选的,如果第一配置文件中定义了判断语法,则主服务器会根据判断语法规定的判断逻辑来执行相应的流程。
75.解析完成后,将对第一配置文件解析得到的解析结果(即部署服务器数据)转换为结构体并存储在主服务器的内存中,以便后续调用。若上述任意一个步骤出错,即立即停止自动化部署,并在命令行中打印提示错误,例如若解析变量错误,则打印解析变量x错误:未定义变量x。值得注意的是,上述步骤a1-a4,并不限定实施的先后顺序,仅做说明作用。
76.s12、主服务器依据解析得到的部署服务器数据以及安全通信协议(ssh,secure shell)连接到目标服务器。
77.具体的,若连接到的服务器不是第一配置文件对应的目标服务器(即服务器配置有误)或者连不上,则显示错误提示,例如无法连接服务器127.0.0.1以及用户名或密码错误;若目标服务器配置正确,则在命令行中显示服务器连接成功,例如服务器127.0.0.1连接成功。
78.s20、服务器配置成功后,主服务器在检测到部署命令后,获取并解析第二配置文
件以获取部署服务数据,然后将部署服务数据传输给目标服务器。
79.具体的,主服务器在检测到存在部署命令输入后,如“tsdp deploy-fservices.yml”,从文件服务器中下载第二配置文件,即services.yml,并对第二配置文件进行解析以获取部署服务数据。其中第二配置文件为按照yaml规范编写的文件,用于描述在服务器上部署服务所需要的信息,在编译时需要指定服务下载地址、服务部署位置以及服务启动命令等部署服务数据,编译完成后存储在文件服务器中。
80.主服务器对第二配置文件的解析过程与主服务器解析第一配置文件部分相同,因此对于相同步骤不在进行赘述;解析第二配置文件的区别在于,第二配置文件中会有一些新的语法,如命令(cmd)以及依赖(depend);此时若主服务器检测到第二配置文件中存在“命令”,则主服务器会在目标服务器内执行相应的命令,例如cmd:cp./nginx.conf/opt/nginx/,此命令为复制nginx.conf文档到/opt/nginx/目录下,则主服务器会将nginx.conf文档复制在目标服务器/opt/nginx/目录下;若主服务器检测到第二配置文件中用到“依赖”,则表示服务之间存在依赖关系,因此需要先部署上游服务,再部署下游服务,例如服务b依赖于服务a,服务部署时,需先部署服务器a,当服务a启动成功后再部署服务b。此外,优选的若第二配置文件中有用到环境变量,则主服务器需要在目标服务器内设置相应的环境变量。主服务器解析第二配置文件与解析第一配置文件的过程一致,在解析完成后,将对第一配置文件解析得到的解析结果(即部署服务器数据)转换为结构体并存储在主服务器的内存中,以供后续调用;若其中任一一个步骤出错,即立即停止自动化部署,并在命令行中打印提示错误。
81.s30、目标服务器从文件服务器下载与目标服务对应的部署文件,基于下载的部署文件以及部署服务数据,在目标服务器上部署目标服务。
82.目标服务器将部署文件下载到部署服务数据中规定的特定位置,优先的在第二配置文件中存在环境变量时,将环境变量设置进目标服务器。启动部署完部署文件的新的目标服务器,并保存服务进程id;如果目标服务启动成功,目标服务器会在命令行中打印启动成功信息,即通过查询版本接口查询目标服务的当前版本例如:http://0.0.0.1/api/version,若查询得到的版本和需要部署的目标服务的版本一致,则表示新服务部署成功;如果目标服务启动失败,则回滚至上一个版本的目标服务(即原始服务)。优选的,还可以对启动后的目标服务进行监控,可以根据name web指定的服务名,主服务器查找目标服务部署的目标服务器以及服务器连接信息(即查询存放在主服务器内存的解析结果),然后连接目标服务所在的目标服务器,并根据服务名获取服务进程id(服务器启动服务时保存),根据服务进程id来获取服务状态(如使用命令kill-0pid来判断服务状态)。
83.可以理解的是,在将目标服务部署至目标服务器之前,还需要检测与目标服务对应的旧版本的原始服务是否运行,由于在启动服务时会将服务的进程id记录在文件中,因此可以通过进程id(pid,process identifier)先查找原始服务是否启动,利用命令“kill-0pid”来判断目标服务是否运行,kill-0不会向进程发送任何信号,但是会进行错误检查,如果进程存在则会返回0,如果不存在则会返回1,因此可以根据该命令查询原始服务的进程id并根据返回值确定原始服务器是否运行;如果没有pid文件,则可以通过linux命令尝试查找pid。如果原始服务在运行状态,则目标服务器停止原始服务;如果原有服务已经停止,则直接进入后续步骤。此外目标服务器备份原始服务文件至预设位置(即备份文件夹)
以实现前述步骤中在目标服务启动失败时回滚至上一个版本的目标服务,优选的可以对原始服务文件进行重命名,加上时间,例如web-20221101.zip。
84.优选的,在从文件服务器中获取文件时,可以基于token认证以增加安全性,具体的:文件服务器基于接收到的目标服务器的下载请求,验证登录目标服务器用户的合法性后发放令牌至目标服务器;目标服务器再次发送下载请求至所述文件服务器时,文件服务器验证是否存在所述令牌;若存在令牌则验证成功并返回下载请求对应的部署文件至目标服务器;若不存在令牌,则说明目标服务器没有权限下载文件。
85.本技术相较于传统的自动化部署方法,无需在网页界面操作,可以在纯命令行模式下实现对服务的部署,即实现在无gui的linux系统下进行部署。此外,本技术基于yaml规范编译配置文件,具有更好的服务编排能力,可以定义服务间的依赖关系,进一步在配置文件中可设置加密参数以提高整个自动化部署流程的安全性;此外无需在待部署服务器中安装其他软件,依赖少,配置简便。
86.实施例二
87.对应上述实施例一,本技术实施例还提供了一种基于yaml的自动化部署方法,如图2所示,具体如下:
88.2100、在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
89.2200、所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
90.2300、所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
91.优选的,所述第一配置文件及第二配置文件的解析过程包括:
92.2310、查询版本声明并依据所述版本声明确定解析语法;
93.2320、基于所述解析语法检查所述第一配置文件及所述第二配置文件的语法规范;
94.2330、若检测所述第一配置文件及所述第二配置文件内存在变量,则利用变量应用替换变量值。
95.优选的,所述方法还包括对所述第一配置文件和第二配置文件内的参数进行安全保密,所述安全保密过程包括:
96.2340、所述文件服务器根据预设的口令及随机生成的盐,生成加密密钥;
97.2350所述文件服务器基于加密密钥及对称加密算法对所述第一配置文件和第二配置文件的参数进行加密;
98.2360、所述主服务器获取加密后的第一配置文件和第二配置文件后,利用所述预设的口令和盐还原所述加密密钥并根据所述加密密钥对加密后的参数进行解密。
99.优选的,所述方法还包括:
100.2370、将解析后的所述第一配置文件及第二配置文件转换为结构体并存储在所述主服务器内。
101.2400、所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
102.优选的,所述部署文件存储在文件服务器中,所述获取部署文件包括:
103.2410、所述文件服务器基于接收到的目标服务器的下载请求,验证登录用户的合法性后发放令牌至所述目标服务器;
104.2420、所述目标服务器再次发送下载请求至所述文件服务器时,所述文件服务器验证是否存在所述令牌;
105.2430、若存在所述令牌则验证成功并返回所述下载请求对应的部署文件至所述目标服务器。
106.优选的,所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署之前,所述方法还包括:
107.2440、所述目标服务器根据预设规则及进程id检测原始服务的运行状态;
108.2450、若所述原始服务处于运行状态,则所述目标服务器停止运行所述原始服务;
109.2460、所述目标服务器备份所述原始服务至预设位置以便在所述目标服务失败时调用原始服务。
110.优选的,所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器,还包括:
111.2470、所述部署文件部署至目标服务器后,启动所述目标服务器并查询目标服务器当前运行的服务版本;
112.2480、若所述服务版本与所述目标服务版本一致,则部署成功;
113.2490、若所述服务版本与所述目标服务版本不一致,则部署失败并打印失败信息以便进行修正。
114.实施例三
115.如图3所示,对应上述实施例一和实施例二,本技术实施例提供了一种基于网卡的存储优化系统,所述系统包括:
116.配置模块310,用于在纯命令行模式下,启动主服务器,利用主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
117.所述配置模块310,还用于利用所述主服务器基于所述部署服务器数据及安全通信协议,连接所述主服务器与目标服务器;
118.部署模块320,用于利用所述主服务器检测部署命令并在检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
119.所述部署模块320,还用于利用所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
120.在一些实施例中,所述配置模块310还用于利用主服务器对第一配置文件和第二配置文件进行解析:查询版本声明并依据所述版本声明确定解析语法;基于所述解析语法
检查所述第一配置文件及所述第二配置文件的语法规范;若检测所述第一配置文件及所述第二配置文件内存在变量,则利用变量应用替换变量值。
121.在一些实施例中,所述部署文件存储在文件服务器中,所述部署模块320还用于获取部署文件:通过所述文件服务器基于接收到的目标服务器的下载请求后,控制文件服务器验证登录用户的合法性后发放令牌至所述目标服务器;在所述目标服务器再次发送下载请求至所述文件服务器时,控制所述文件服务器验证是否存在所述令牌;若存在所述令牌则验证成功并返回所述下载请求对应的部署文件至所述目标服务器。
122.在一些实施例中,所述配置模块310还用于对所述第一配置文件和第二配置文件内的参数进行安全保密,所述安全保密过程包括:利用所述文件服务器根据预设的口令及随机生成的盐,生成加密密钥;所述文件服务器基于加密密钥及对称加密算法对所述第一配置文件和第二配置文件的参数进行加密;所述主服务器获取加密后的第一配置文件和第二配置文件后,利用所述预设的口令和盐还原所述加密密钥并根据所述加密密钥对加密后的参数进行解密。
123.在一些实施例中,所述部署模块320还用于利用所述目标服务器根据预设规则及进程id检测原始服务的运行状态;若所述原始服务处于运行状态,则控制所述目标服务器停止运行所述原始服务;并利用所述目标服务器备份所述原始服务至预设位置以便在所述目标服务失败时调用原始服务。
124.在一些实施例中,所述部署模块320还用于在将所述部署文件部署至目标服务器后,启动所述目标服务器并查询目标服务器当前运行的服务版本;检测所述服务版本与目标服务版本是否一致;若所述服务版本与所述目标服务版本一致,则部署成功;若所述服务版本与所述目标服务版本不一致,则部署失败并打印失败信息以便进行修正。
125.在一些实施例中,所述配置模块310还用于将解析后的所述第一配置文件及第二配置文件转换为结构体并存储在所述主服务器内。
126.实施例四
127.对应上述所有实施例,本技术实施例提供一种电子设备,包括:
128.一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
129.在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
130.所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
131.所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
132.所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
133.其中,图4示例性的展示出了电子设备的架构,具体可以包括处理器410,视频显示适配器411,磁盘驱动器412,输入/输出接口413,网络接口414,以及存储器420。上述处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420
之间可以通过总线430进行通信连接。
134.其中,处理器410可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
135.存储器420可以采用rom(read only memory,可编写存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储用于控制电子设备400执行的操作系统421,用于控制电子设备400的低级别操作的基本输入输出系统(bios)422。另外,还可以存储网页浏览器423,数据存储管理系统424,以及图标字体处理系统425等等。上述图标字体处理系统425就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
136.输入/输出接口413用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
137.网络接口414用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
138.总线430包括一通路,在设备的各个组件(例如处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420)之间传输信息。
139.另外,该电子设备400还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
140.需要说明的是,尽管上述设备仅示出了处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,存储器420,总线430等,但是在具体实施过程中,该设备还可以包括实现正常执行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
141.实施例五
142.对应上述所有实施例,本技术实施例还提供一种计算机可读存储介质,其特征在于,其存储计算机程序,所述计算机程序使得计算机如下操作:
143.在纯命令行模式下,启动主服务器,所述主服务器获取并解析第一配置文件以获取部署服务器数据,其中,所述第一配置文件为基于yaml规范编写的包含部署服务器数据的文件;
144.所述主服务器基于所述部署服务器数据及安全通信协议,连接至目标服务器;
145.所述主服务器检测到部署命令后,获取并解析第二配置文件以获取部署服务数据,以及将所述部署服务数据传输给所述目标服务器,其中,所述第二配置文件为基于yaml规范编写的包含部署服务数据的文件;
146.所述目标服务器获取目标服务对应的部署文件并基于接收到的所述部署服务数据,将所述部署文件部署至目标服务器以实现目标服务的部署。
147.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务端,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
148.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
149.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1