1.本技术涉及大数据智能分析技术领域,特别是涉及一种多环境配置方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:2.随着应用系统功能越来越复杂以及应用各种配置文件和参数不断增加,会导致系统的导致配置项的管理越来越复杂。相关技术中,有很多开源的软件或者产品能够实现不同系统的配置管理,但是但其学习成本、改造成本、运行成本和维护成本均较高,而且开源协议的引入还可能导入本应用系统产生对应的开源风险,因此针对多环境的配置管理方法和工具亟待实现。
技术实现要素:3.基于此,有必要针对上述技术问题,提供一种能够对目标环境进行配置的环境配置方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
4.第一方面,本技术提供了一种环境配置方法,该方法包括:
5.获取环境标识;
6.对环境标识进行识别,从版本包中读取与环境标识对应的配置信息;
7.根据配置信息中的替换规则,将待替换的信息替换为目标信息,并执行以得到配置完成的目标环境;根据配置信息中的替换规则将待替换的信息替换为目标信息,包括:
8.根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息;
9.根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息。
10.在其中一个实施例中,上述根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息,包括:
11.读取环境配置信息中的规则文件,并执行环境配置信息中的规则文件;
12.读取环境配置信息中的环境文件,并执行环境配置信息中的环境文件;
13.上述根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息,包括:
14.读取单元配置信息中的规则文件,并执行单元配置信息中的规则文件;
15.读取单元配置信息中的环境文件,并执行单元配置信息中的环境文件。
16.在其中一个实施例中,上述根据配置信息中的替换规则,将待替换的信息替换为目标信息,包括以下至少一种:
17.将待替换的信息替换为目标信息;
18.生效对应环境目录或单元目录下的指定文件夹;
19.执行配置信息中的命令,直接生效对应的变量或文件。
20.在其中一个实施例中,上述对环境标识进行识别,从版本包中读取与环境标识对应的配置信息,包括:
21.当环境标识识别失败时,读取与环境标识对应的环境目录下的环境配置信息。
22.在其中一个实施例中,上述获取环境标识之前,还包括:
23.获取各目标环境对应的环境信息;
24.获取预先设置的配置信息结构;
25.根据环境信息和配置信息结构生成各目标环境对应的配置信息。
26.在其中一个实施例中,上述配置信息结构,包括:主目录、环境目录以及单元目录;其中环境目录和单元目录包括各自对应的替换文件、环境文件以及待生效的配置文件。
27.在其中一个实施例中,上述方法还包括:
28.生成配置信息对应的访问路径标识。
29.在其中一个实施例中,上述对环境标识进行识别,从版本包中读取与环境标识对应的配置信息,还包括:
30.根据访问路径标识从版本包中读取与环境标识对应的配置信息。
31.第二方面,本技术提供了一种配置启动方法,该方法包括:
32.根据上述任意一项中的环境配置方法的实施例对目标环境进行环境配置;
33.在完成环境配置后的目标环境中执行应用启动脚本。
34.在其中一个实施例中,上述在完成环境配置后的目标环境中执行应用启动脚本之前,包括:
35.获取封装在一起的环境配置脚本与应用启动脚本。
36.第三方面,本技术还提供了一种环境配置装置,该装置包括:
37.标识读取模块,用于获取环境标识;
38.配置信息获取模块,用于对环境标识进行识别,从版本包中读取与环境标识对应的配置信息;
39.配置模块,用于根据配置信息中的替换规则,将待替换的信息替换为目标信息,并执行以得到配置完成的目标环境;其中,配置模块包括:环境配置子模块,用于根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息;单元配置子模块,用于根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息。
40.第四方面,本技术还提供了一种配置启动装置,该装置包括:
41.环境配置模块,用于根据上述任意一个实施的环境配置装置对目标环境进行环境配置;
42.启动模块,用于在完成环境配置后的目标环境中执行应用启动脚本。
43.第五方面,本技术还提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述任意一个实施例中的方法的步骤。
44.第六方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
45.第七方面,本技术还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
46.上述环境配置方法、装置、计算机设备、存储介质和计算机程序产品,服务器首先获取环境标识,并对环境标识进行识别,从服务器从预设的版本包中读取与环境标识对应的配置信息,并根据配置信息中的替换规则,将目标环境中待替换的信息替换为目标信息,并执行以得到配置完成的目标环境。由于版本包中包括各个环境的配置信息,因此在任意环境中都可以使用;其次,在根据配置信息对目标环境进行配置时仅需要根据环境对应的配置信息中的替换规则进行替换,不需要引入开源软件。市面上已有的开源软件或者产品即使能够实现环境配置,但其学习成本,改造成本,运行成本,维护成本均较高,而且开源协议的引入还可能导入本应用系统产生对应的开源风险,因此本方法更加简单、便捷。
附图说明
47.图1为一个实施例中环境配置方法的应用环境图;
48.图2为一个实施例中环境配置方法的流程示意图;
49.图3为一个实施例中版本包结构示意图;
50.图4为一个实施例中配置启动方法的流程示意图;
51.图5为一个实施例中环境配置装置的结构框图;
52.图6为一个实施例中环境启动装置结构框图;
53.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
54.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
55.本技术实施例提供的环境配置方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器首先获取环境标识,然后对环境标识进行识别后,从版本包中读取与环境标识对应的配置信息,并根据配置信息中的替换规则,将待替换的信息替换为目标信息,并执行以得到配置完成的目标环境,以实现目标环境的配置。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
56.在一个实施例中,如图2所示,提供了一种环境配置方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
57.s202,获取环境标识。
58.其中,环境标识是指多环境间区分的唯一标识,通过环境标识可以知道当前的系统环境,例如当前系统的版本,其可以根据预先设定的规则进行设定,例如通过env-id来表示,其中env_id=环境名称或env-id=环境名称-单元名称,其中单元名称可以是当前环境
系统环境中的某一个应用软件,其具体格式不在此做具体限定。
59.在一个实施例中,如果需要使用环境标识对prd系统下的spu1进行表示,可以表示为env_id=prd-spu1,使用
“‑”
做分割。
60.s204,对环境标识进行识别,从版本包中读取与环境标识对应的配置信息。
61.其中,配置信息是指对目标环境,即需要进行环境配置的系统环境所需的配置信息,其中包括目标环境的环境配置信息,即公共环境中所需要的全部配置信息以及各个单元进行配置所需要的信息。
62.其中,版本包是指预先配置在目标环境中的,版本包中包括各个目标环境进行环境配置的配置信息,根据使用需求,版本包是可以有多个版本的,例如版本包1.0,版本包2.0。
63.具体地,服务器获取环境标识后,可以根据环境标识从目标环境中预先配置的版本包中读取与当前环境标识对应的配置信息,例如环境标识为env_id=prd-spu1,那么服务器根据以
“‑”
对环境标识进行分割,从版本包中获取prd系统下的环境配置信息以及prd系统下spu1单元的单元配置信息。
64.在一个实施例中,实际使用场景中的需求发生改变时,目标环境中的版本包也会发生相应的改变。
65.在一个实施例中,当服务器对环境标识分割后读取失败时,即当环境标识为prd-spu3,而版本包中只有prd环境下spu1单元以及spu2单元的配置信息时,服务器会读取相应的环境配置信息,即版本包中prd的环境配置信息对目标环境进行配置。
66.在一个实施例中,当服务器对环境标识分割后读取失败时,即当环境标识为prd3-spu1,而版本中没有prd3环境的任何配置信息时,也就是版本包中没有prd3环境的环境配置信息以及prd环境的单元配置信息时,服务器可以显示环境标识读取失败,请进行确认。其中可选地,服务器会显示所有的可能的环境标识,以便用户进行更正。在其他实施例中,服务器也可以将错误上传至云端,由云端进行进一步的处理。
67.s206,根据配置信息中的替换规则,将待替换的信息替换为目标信息,并执行以得到配置完成的目标环境;根据配置信息中的替换规则将待替换的信息替换为目标信息,包括:根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息;根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息。
68.其中,替换规则是指预设的将目标环境中待替换的信息替换为目标信息的规则,待替换的信息是指目标环境中环境以及环境下单元中原有的需要被更新或者更替的信息;目标信息是指替换完成后的环境配置信息及单元信息。
69.其中,目标环境信息是指目标环境中替换完成后目标环境所执行的信息;目标单元信息是指目标单元中替换完成后目标单元所执行的信息。
70.具体地,服务在获取与目标环境对应的配置信息后,根据配置信息中的替换规则,将原环境中待替换的信息替换为目标信息,例如将目标文件中的指定内容从原值替换为目标值后,执行替换后的目标信息,此时目标环境完成环境配置。
71.在一个实施例中,具体结合图3所示,图3为一个实施例中版本包结构示意图,其中config为主目录,在conifg主目录下的环境目录中存放各个目标环境的环境配置信息,各
个环境目录下存放对应环境下单元目录,各个单元目录下存放对应的的单元配置信息。
72.具体地,服务器会读取配置信息中的环境目录下的环境配置信息以及对应的环境目录下的单元目录的单元配置信息,并根据环境配置信息以及单元配置信息对目标环境中的待替换信息替换为目标环境信息和目标单元信息,然后执行目标环境信息和目标单元信息,以得到配置完成的目标环境。
73.在一个实施例中,服务器中可以有多个线程同时对多个目标单元进行配置。
74.在一个实施例中,如果服务器只读取到了环境配置信息,那么服务器只对目标环境中的待替换环境信息替换为目标环境信息。
75.在一个实施例中,配置信息中的替换规则还包括生效目标环境下的指定文件夹或者生效目标环境下的执行文件夹。
76.在一个实施例中,配置信息中的替换规则还包括执行配置中的命令,例如其生效时直接执行sed
–i‘
s/7777/8888/g’/home/ap/tomcat/config/application.properties这行指令,是把application.properties中的7777数字替换为8888。
77.上述环境配置方法中,服务器首先获取环境标识,并对环境标识进行识别,从服务器从预设的版本包中读取与环境标识对应的配置信息,并根据配置信息中的替换规则,将目标环境中待替换的信息替换为目标信息,并执行以得到配置完成的目标环境。由于版本包中包括各个环境的配置信息,因此在任意环境中都可以使用;其次,在根据配置信息对目标环境进行配置时仅需要根据环境对应的配置信息中的替换规则进行替换,不需要引入开源软件。市面上已有的开源软件或者产品即使能够实现环境配置,但其学习成本,改造成本,运行成本,维护成本均较高,而且开源协议的引入还可能导入本应用系统产生对应的开源风险,因此本方法更加简单、便捷。
78.在其中一个实施例中,上述根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息,包括:读取环境配置信息中的规则文件,并执行环境配置信息中的规则文件;读取环境配置信息中的环境文件,并执行环境配置信息中的环境文件。
79.其中,环境配置信息中的规则文件是指替换规则载体,存放目标环境下的公共的配置文件替换规则,在目标环境下所有单元的相同配置均可配置在本文件中;环境配置信息中的环境文件是指目标环境下公共的环境变量,在目标环境下所有单元的相同环境变量均可配置在该文件中,基本格式为键值对。
80.具体地,服务器首先读取环境目录下的规则文件,逐条执行替换规则,然后读取环境目录下的环境文件,逐条生效其中的环境变量。
81.在其中一个实施例中,上述根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息,包括:读取单元配置信息中的规则文件,并执行单元配置信息中的规则文件;读取单元配置信息中的环境文件,并执行单元配置信息中的环境文件。
82.其中,单元配置信息中的规则文件是指替换规则载体,存放目标单元下的专有的配置文件替换规则;单元配置信息中的环境文件是指当前单元下的专有的环境变量,基本格式为键值对。
83.具体地,服务器首先读取单元目录下的规则文件,逐条执行替换规则,然后读取单
元目录下的环境文件,逐条生效其中的环境变量。
84.在上述实施例中,服务器需要首先读取环境配置信息中的规则文件和环境文件后执行,再读取单元配置信息中的规则文件和环境文件后执行,这样是为了避免在执行单元配置信息中的规则文件和环境文件时出现环境不兼容等错误而导致配置失败。
85.在其中一个实施例中,上述根据配置信息中的替换规则,将待替换的信息替换为目标信息,包括以下至少一种:将待替换的信息替换为目标信息;生效对应环境目录或单元目录下的指定文件夹;执行配置信息中的命令,直接生效对应的变量或文件。
86.具体地,服务器通过特定的生效方式将目标文件中的指定内容从原值替换为目标值,其中,目标信息是指替换完成后的信息,在一个实施例中,可以通过生效方式r将待替换的信息替换为目标信息,例如r@@redis.properties@@^srvinfolist=.*@@srvinfolist=128.196.1.1:6379,128.196.1.2:6379,128.196.1.3:6379,其中,r为生效方式:将目标文件中的指定内容从原值替换为目标值。(@@为分割符)redis.properties为需变更的目标文件名^srvinfolist=.*为替换的原值,具体含义为需将redis.properties中以srvinfolist=开头的所有内容替换为目标值srvinfolist=128.196.1.1:6379,128.196.1.2:6379,128.196.1.3:6379为替换的目标值,具体含义为需将redis.properties中以srvinfolist=开头的所有内容替换为该值,在其他实施例中,可以通过r@@待替换文件名@@待替换原值@@待替换目标值的方式将待替换的信息替换为目标信息。
87.具体地,服务器可以通过预设的生效方式生效对应环境目录或单元目录下的指定文件夹,在一个实施例中,可以通过生效方式f生效指定文件夹,例如f@@redis.properties@@prd-redis.properties,其中,f为生效方式:使用对应环境目录下的指定文件为生效文件,具体执行时会将目标文件整个替换。(@@为分割符)redis.properties为需被替换的目标文件名,prd-redis.properties为对应环境目录下实际的配置文件名,其内容是对应环境真实的配置信息。在其他实施例中,服务器可以通过f@@待替换文件名@@实际待生效文件名的方式对应环境目录或单元目录下的指定文件夹。
88.具体地,服务器可以通过特定的生效方式执行配置信息中的命令,直接生效对应的变量或文件,在一个实施例中,可以通过生效方式c执行配置信息中的命令,例如c@@sed
–i‘
s/7777/8888/g’/home/ap/tomcat/config/application.properties,其中,c为生效方式:执行配置中的命令,其生效时直接执行sed
–i‘
s/7777/8888/g’/home/ap/tomcat/config/application.properties这行指令。(@@为分割符)。
89.需要说明的一点是,所有的替换规则都必须填写在环境配置信息或单元配置信息中的规则文件。
90.在上述实施例中,服务器通过将待替换的信息替换为目标信息、生效对应环境目录或单元目录下的指定文件夹、执行配置信息中的命令,直接生效对应的变量或文件中的至少一种方式将目标环境中的待替换的信息替换为目标信息。
91.在其中一个实施例中,上述对环境标识进行识别,从版本包中读取与环境标识对应的配置信息,包括:当环境标识识别失败时,读取与环境标识对应的环境目录下的环境配置信息。
92.具体地,服务器会根据环境标识来获取配置信息,如果该环境标识中的环境变量
未出现或者该值不对,均不能进行配置文件的替换。示例性的,环境目录中有prd环境,prd环境下有spu1和spu2两个部署单元,则可精确生效的环境标识只能为prd-spu1和prd-sup2这两个。如果环境标识为prd-spu3,则只会生效prd目录的环境配置信息。
93.在上述实施例中,当环境标识读取失败时,服务器会从版本包中读取与环境标识对应的环境目录下的环境配置信息,以完成目标环境中的公共环境的配置。
94.在其中一个实施例中,上述获取环境标识之前,还包括:获取各目标环境对应的环境信息;获取预先设置的配置信息结构;根据环境信息和配置信息结构生成各目标环境对应的配置信息。
95.其中,环境信息是指目标环境中现有配置信息,其中包括系统版本、单元版本等。
96.具体地,首先获取各个目标环境中的环境信息以及预先设置的配置信息结构,其中配置信息结构是根据实际使用场景进行设置,例如,此次需要对多个目标环境中的sup1进行版本更新,那么配置信息结构可以设置为主目录、环境目录、单元目录,若要对spu1中的某个插件进行版本信息,那么配置信息结构可以设置为主目录、环境目录、单元目录、子单元目录。最后,根据环境信息以及配置信息结构生成各目标环境对应的配置信息。
97.在上述实施例中,根据各目标环境对应的环境信息以及预先设置的配置信息机构能够生成各目标环境对应的配置信息,由于配置信息结构是根据实际使用场景进行设置的,因此可以灵活生成适应各种需求的配置信息。
98.在其中一个实施例中,上述配置信息结构,包括:主目录、环境目录以及单元目录;其中环境目录和单元目录包括各自对应的替换文件、环境文件以及待生效的配置文件。
99.具体地,配置信息中包括主目录,主目录下包括各个目标环境的环境目录,各个环境目录中包括各个单元的单元目录。其中环境目录下包括与各个环境对应的环境配置信息,单元目录下包括与各个目标单元对应的单元配置信息。
100.在一个实施例中,继续结合图3所示,config为主目录,配置管理脚本运行时会默认检索该目录下的配置,prd:为环境配置文件夹,该目录名可自定义,例如以目标环境命名,该目标下包括目标环境下环境配置信息以及单元配置信息,spu1文件下包括spu1单元下所有的单元配置信息。
101.在一个实施例中,spu1和spu2是同一个软件的配置,但这个软件部署的时候是多城市集群部署的,spu1可理解为在北京部署该软件的配置,spu2为在深圳部署该软件的配置;或者在机房1或者机房2的配置。
102.在一个实施例中,继续结合图3所示,其中,主目录可以使用config来表示,配置管理脚本运行时会默认检索该目录下的配置,即该目录下为各环境配置的文件夹,所以需管理环境的配置均需在该路径下创建对应文件夹。环境目录:为环境配置文件夹,该目录名可自定义,故各个目标环境的所有环境配置均需登记在该目录夹下,如果存放的是prd1环境下的各个配置文件,那么可以使用prd1为环境目录。替换规则载体(common.cfg):存放各个环境下的公共的配置文件替换规则,在各个环境下所有部署单元的相同配置均可配置在该文件中。公共环境变量(common.env)该替换文件为prd环境下公共的环境变量,在prd环境下所有单元的相同环境变量均可配置在该文件中,基本格式为键值对。具体配置文件1(prd-xx.xml)和具体配置文件2(prd-xx.properties):为prd环境下需生效的具体配置文件,该配置文件为实际生效的正确配置,假如该文件为生产数据库配置,则该文件中应该填
写prd环境正确的数据库配置信息。若是其他环境写的具体配置文件,可使用对应的环境-xx.xml以及对应的环境-xx.properties来表示,例如prd3-xx.xml来表示。配置管理交易运行时会将根据规则将该文件替换至正确的路径下,使其生效单元目录下的配置配置信息,例如spu1目录下的配置信息,spu1:为当前文件下(当前环境下)的单元,该目录名可自定义(在本实施例中spu1为单元,亦可为模块编号),在prd环境各单元差异的配置需登记在该目录下。单元目录下的替换规则载体(config.cfg),存放当前单元下的专有的配置文件替换规则。单元环境变量(config.env):该文件为当前单元下的专有的环境变量,基本格式为键值对。单元目录下的具体配置文件1(prd-spu1-xx.xml)和单元目录下的具体配置文件2(prd—spu1-xx.properties):为当前单元下具体的配置文件,该配置文件为实际生效的正确配置,假如该文件为生产数据库配置,则该文件中应该填写生产环境正确的数据库配置信息。配置管理交易运行时会将根据规则将改文件替换至正确的路径下,使其生效。
103.在上述实施例中,通过结构化配置信息,可以使服务器根据环境标识快速读取到对应的配置信息。
104.在其中一个实施例中,上述方法还包括:生成配置信息对应的访问路径标识。
105.其中,访问路径是根据配置信息结构生成的,配置信息中的每一分文件都有对应的访问路径,根据访问路径可以生成对应的访问路径标识,其中,访问路径标识同环境标识一样是一个系统环境变量,其格式为cfg_path=配置的绝对路径。例如,图3中的主目录的绝对路径为/home/ap/app/config,则访问路径标识应用cfg_path=/home/ap/app。
106.在其中一个实施例中,上述对环境标识进行识别,从版本包中读取与环境标识对应的配置信息,还包括:根据访问路径标识从版本包中读取与环境标识对应的配置信息。
107.具体地,服务器读取环境标识后,根据访问路径标识从版本包中读取与环境标识对应的环境配置信息以及单元配置信息。
108.在上述实施例中,通过正确设置环境标识和访问路径标识这两个环境变量,以免配置管理功能不能生效。
109.在一个实施例中,当使用需求发生变化的时候,可以将版本包进行升级,例如将版本包1.0升级为2.0,并重新配置在目标环境中,其中可选地,版本包2.0可以直接替换版本包1.0,在其他实施例中,可以将发生变化的配置信息进行替换,例如单元目录1以及环境目录下的配置信息发生变化,而其他均没有发生变化,则将版本包1.0中发生变化的进行更替,其他均不变。在其中一个实施例中,也可以在目标环境中配置多个版本包,由用户根据实际使用需求进行选择。
110.在上述实施例中,通过对目标环境中的版本包进行升级或在目标环境中配置多个版本包,这样可以灵活适应多种应用场景的需求。
111.在其中一个实施例中,如图4所示,提供了一种配置启动方法,该方法包括:
112.s402,根据上述任意一项中的环境配置方法的实施例对目标环境进行环境配置。
113.具体地,服务器读取环境标识,并对环境标识进行识别,从版本包中读取与环境标识对应的配置信息,该配置信息中包括环境配置信息和单元配置信息,环境配置信息对目标环境中的公共环境进行配置,单元配置信息对目标单元进行配置,具体地服务器会首先读取环境配置信息中的规则文件以及环境文件并执行,然后读取单元配置信息中的规则文件以及环境文件并执行,此时完成目标环境的环境配置。
114.在其中一个实施例中,目标环境的环境配置过程如下:1、获取环境标识和配置根路径;2、切分环境标识获取环境目录和单元目录;3、循环读取环境目录下的规则文件,逐条执行替换规则;4、循环读取环境目录下的环境文件,逐条生效其中的环境变量;5、循环读取单元目录下的规则文件,逐条执行替换规则,如果单元不存在则退出;6、循环读取单元目录下的环境文件,逐条生效其中的环境变量,如果单元不存在则退出。
115.s404,在完成环境配置后的目标环境中执行应用启动脚本。
116.具体地,在对目标环境完成配置之后,即根据所述配置信息中的替换规则,将待替换的信息替换为目标信息,并执行后,再执行应用启动脚本。
117.在上述实施例中,环境配置方法简单易学,对应用无侵入,使用成本极低,适应范围广,功能齐全,能同时管理文件类和环境变量类配置,使用方便,且无分布式配置中心的运行成本。
118.在其中一个实施例中,上述在完成环境配置后的目标环境中执行应用启动脚本之前,包括:获取封装在一起的环境配置脚本与应用启动脚本。
119.其中,环境配置脚本为对目标环境进行配置或目标环境及目标单元进行配置的脚本文件,应用启动脚本为将环境配置脚本应用到当前目标环境中的脚本文件。
120.具体地,服务器在完成环境配置后的目标环境中执行应用启动脚本之前,还需要获取封装在一起的环境配置脚本与应用启动脚本。在一个实施例中,封装应用启动脚本,将原应用启动脚本替换为先执行配置管理脚本再执行应用启动脚本,假定原应用启动脚本为appstart.sh,如果配置管理脚本为cfgmanager.sh,则因的应用启动脚本应更改为sh cfgmanager.sh&&sh appstart.sh。在其他实施例中,将环境配置脚本和应用启动脚本进行封装时,可以将应用启动脚本放在环境配置脚本之前。
121.在上述实施例中,通过将环境配置脚本和应用启动脚本进行封装,可以提高配置信息的可用性和可维护性。
122.在其中一个实施例中,在启动应用启动脚本时需要输入预先设置的秘钥,其中该秘钥可以是用户提前在云端获取的,在启动应用启动脚本时,回弹出键入秘钥的弹窗,当秘钥符合条件时,应用启动脚本开始启动,否则目标环境就显示错误,终止对目标环境的配置。
123.在上述实施例中,通过设置秘钥可以保证对目标环境进行配置的安全性,防止恶意对目标环境进行配置。
124.在一个实施例中,在版本包中还配置了环境还原脚本,当用户启动应用启动脚本后,如果想还原之前的环境配置的话,可以启用环境还原脚本对目标环境的配置进行还原,其中,环境还原脚本中记录了目标环境配置的日志,可以根据日志信息对目标环境的配置进行还原。
125.在上述实施例中,通过设置换将还原脚本,可以对目标环境的配置进行还原,这样当对目标环境配置错误时,可以及时进行还原。
126.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个
阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
127.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的环境配置方法的环境配置装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个环境配置装置实施例中的具体限定可以参见上文中对于环境配置方法的限定,在此不再赘述。
128.在一个实施例中,如图5所示,提供了一种环境配置装置,包括:标识读取模块100、配置信息获取模块200和配置模块300,其中:
129.标识读取模块100,用于获取环境标识。
130.配置信息获取模块200,用于对环境标识进行识别,从版本包中读取与环境标识对应的配置信息。
131.配置模块300,用于根据配置信息中的替换规则,将待替换的信息替换为目标信息,并执行以得到配置完成的目标环境。
132.其中,配置模块包括:
133.环境配置子模块,用于根据配置信息中的环境目录下的环境配置信息,将目标环境中的待替换信息替换为目标环境信息。
134.单元配置子模块,用于根据配置信息中的单元目录下的单元配置信息,将目标环境中的待替换信息替换为目标单元信息。
135.在一个实施例中,上述环境配置子模块包括:
136.环境配置执行第一单元,用于读取环境配置信息中的规则文件,并执行环境配置信息中的规则文件。
137.环境配置执行第二单元,用于读取环境配置信息中的环境文件,并执行环境配置信息中的环境文件。
138.在一个实施例中,上述单元配置子模块包括:
139.单元配置执行第一单元,用于读取单元配置信息中的规则文件,并执行单元配置信息中的规则文件。
140.单元配置执行第二单元,用于读取单元配置信息中的环境文件,并执行单元配置信息中的环境文件。
141.在一个实施例中,上述配置模块还包括:
142.替换子模块,用于将待替换的信息替换为目标信息。
143.生效子模块,用于生效对应环境目录或单元目录下的指定文件夹。
144.执行子单元,用于执行配置信息中的命令,直接生效对应的变量或文件。
145.在一个实施例中,上述配置信息获取模块还包括:
146.配置信息读取失败子模块,用于当环境标识识别失败时,读取与环境标识对应的环境目录下的环境配置信息。
147.在一个实施例中,上述环境配置装置包括:
148.目标环境信息获取模块,用于获取各目标环境对应的环境信息。
149.配置信息结构获取模块,用于获取预先设置的配置信息结构。
150.配置信息生成模块,用于根据环境信息和配置信息结构生成各目标环境对应的配置信息。
151.在一个实施例中,上述配置信息结构,包括:主目录、环境目录以及单元目录;其中环境目录和单元目录包括各自对应的替换文件、环境文件以及待生效的配置文件。
152.在一个实施例中,上述环境配置装置包括:
153.访问路径标识生成模块,生成配置信息对应的访问路径标识。
154.在一个实施例中,上述配置信息获取模块包括:
155.配置信息读取子模块,用于根据访问路径标识从版本包中读取与环境标识对应的配置信息。
156.在一个实施例中,如图6所示,提供了一种配置启动装置包括:
157.环境配置模块500,用于上述任意一个实施例中的环境配置装置对目标环境进行环境配置。
158.启动模块600,用于在完成环境配置后的目标环境中执行应用启动脚本。
159.在一个实施例中,上述配置启动装置还包括:
160.获取脚本模块,用于获取封装在一起的环境配置脚本与应用启动脚本。
161.上述环境配置装置以及配置执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
162.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储环境配置信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种环境配置方法。
163.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
164.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
165.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
166.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
167.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括
非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
168.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
169.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。