CN117193800A - 一种软件安装方法、装置、电子设备与存储介质 - Google Patents
一种软件安装方法、装置、电子设备与存储介质 Download PDFInfo
- Publication number
- CN117193800A CN117193800A CN202210605583.5A CN202210605583A CN117193800A CN 117193800 A CN117193800 A CN 117193800A CN 202210605583 A CN202210605583 A CN 202210605583A CN 117193800 A CN117193800 A CN 117193800A
- Authority
- CN
- China
- Prior art keywords
- installation
- software
- component
- node
- components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000009434 installation Methods 0.000 claims abstract description 463
- 238000012795 verification Methods 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001419 dependent effect Effects 0.000 description 21
- 238000012423 maintenance Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000000819 phase cycle Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种软件安装方法、装置、电子设备与存储介质,方法包括:确定待安装软件中的各个组件在网络集群中的安装节点;根据预先确定的待安装软件的组件间依赖顺序关系,将待安装软件中的各个组件依次安装在对应的安装节点上;其中,对待安装软件中的任意一个组件的安装包括:判断第一待安装组件是否为独立安装组件;其中,第一待安装组件为待安装软件中的当前待安装组件;在第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,完成对第一待安装组件的安装。本发明基于待安装软件中的各个组件所配置的依赖关系,能够实现软件的灵活自动的可自定义的安装或升级。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种软件安装方法、装置、电子设备与存储介质。
背景技术
目前大型软件在安装或升级时,有的需要运维人员手动操作,涉及到相关软件制品包的获取、上传、安装、调试、配置参数等步骤,并且软件的各个子组件之间有依赖关系,如B依赖A,必须先安装A,然后再安装B,运维人员不仅需要了解软件的子组件安装、部署、调试,还需要了解组件之前的依赖关系,这无疑对运维人员的技能有较高要求。
现有的软件安装或升级方案中,可通过软件研发技术人员指导运维人员安装或升级,对于架构较为简单,功能单一的软件而言此种方式较为可行。
但对于大型的、复杂的、集成度高的软件而言,上述解决方案不可取,有如下几种原因:1、运维人员对软件相关架构了解不够,容易在软件安装或升级过程中出现错误;2、出现错误后需要找研发工程师提供技术支持,运维工程师和研发工程师通常在异地办公,远程沟通效果、效率不佳。3、对于相关配置项,运维人员手动操作配置可能出现人为失误,导致软件安装或升级完成后运行效果大打折扣。同理,针对同类软件进行相应的逆序操作即软件卸载操作时也会遇到类似的问题。
发明内容
本发明的目的是提供一种软件安装方法、装置、电子设备与存储介质,用以解决现有技术中大型软件安装效率低、容易出错的问题,通过本申请基于软件子组件的依赖关系生成的有向无环图,实现了软件的灵活自动的可自定义的安装或升级。
本发明提供一种软件安装方法,方法包括:
确定待安装软件中的各个组件在所述网络集群中的安装节点;
根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
根据本发明提供的软件安装方法,所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上,还包括:
根据预先确定的待安装软件的组件间依赖顺序关系,生成一个有向无环图,其中,所述有向无环图是一个拓扑排序图;
基于所述有向无环图,将所述待安装软件中的各个组件依次安装在对应的安装节点上。
根据本发明提供的软件安装方法,所述对所述待安装软件中的任意一个组件的安装,还包括:
在所述第一待安装组件为独立安装组件的情况下,在对应的安装节点上连续完成所述第一待安装组件的所有安装阶段。
根据本发明提供的软件安装方法,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格。
根据本发明提供的软件安装方法,所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格,包括:
根据待安装软件的需求,确定至少一个候选安装规格;所述候选安装规格包括所述待安装软件的校验信息;
将所述至少一个候选安装规格所对应的校验信息传输到所述网络集群中的各个节点,以使得所述网络集群中的各个节点根据所述校验信息进行校验;
在接收到所述网络集群中的所有节点通过校验的消息后,从通过校验的所述候选安装规格中确定所述待安装软件在所述网络集群中安装时的安装规格。
根据本发明提供的软件安装方法,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
为所述待安装软件中的各个组件配置安装、运行时所需要的参数,并为所述网络集群的各个节点配置所述待安装软件中的各个组件安装、运行时所需要的环境参数。
根据本发明提供的软件安装方法,在所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格之前,方法还包括:
引导用户输入安装所述待安装软件所需的信息;
根据所述信息,为各个节点生成免密登录信息;
其中,所述信息包括各个节点IP、Hostname、Root用户密码中的至少一个。
本发明还提供一种软件卸载方法,用于实现对上述任一项所述软件安装方法所安装软件的卸载,包括:
确定待卸载软件中的各个组件在网络集群中的安装节点;
对所述待卸载软件的组件间依赖顺序关系做逆序操作,得到组件间依赖逆序关系;
根据所述组件间依赖逆序关系,将所述待卸载软件中的各个组件依次从对应的安装节点上卸载。
本发明还提供一种软件安装装置,装置包括:
安装节点确定模块,用于确定待安装软件中的各个组件在所述网络集群中的安装节点;
软件组件安装模块,用于根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述软件安装方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一项所述软件安装方法的步骤。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现任一项所述软件安装方法的步骤。
本发明提供一种软件安装方法、装置、电子设备与存储介质,通过确定待安装软件中的各个组件在所述网络集群中的安装节点;根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。本发明基于待安装软件中的各个组件所配置的依赖关系,能够实现软件的灵活自动的可自定义的安装或升级。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的软件安装方法的流程示意图;
图2是本发明提供的有向无环图的流程示意图;
图3是本发明提供的软件卸载方法的流程示意图;
图4是本发明提供的软件安装装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图5描述本发明的软件安装方法、装置、电子设备与存储介质。
图1为本发明提供的软件安装方法的流程图,如图1所示,本发明提供的软件安装方法,包括:
步骤110、确定待安装软件中的各个组件在所述网络集群中的安装节点;
在本实施例中,待安装软件是安装在网络集群中多个节点上的软件,可以根据需要安装在多台设备上,待安装软件中的组件是指自包含的、可编程的、可重用的、与语言无关的软件单元。网络集群中的安装节点有多个,包括控制节点和工作节点两类,其中,控制节点可以为一个,工作节点则至少有一个,控制节点可以控制工作节点执行由控制节点发送给工作节点的操作指令。
在本实施例中,待安装软件启动安装前,需要提前确定好待安装软件中的各个组件在网络集群中的安装位置即安装节点,也就是说,需要预先定义、配置待安装软件中的各个组件在网络集群中的对应的安装节点的位置。如果待安装软件的组件对应的安装节点为工作节点,则由控制节点向工作节点下发安装待安装软件的组件的任务(独立安装组件的任务或者非独立安装组件的任务);如果待安装软件的组件对应的安装节点为控制节点,则执行相应的组件的安装任务。
步骤120、根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
在本实施例中,组件间依赖顺序关系是指待安装软件中全部组件所配置的依赖关系,其中,依赖的方式包括本地文件系统依赖或者远程依赖。
在本实施例中,假设待安装软件包括A和B两个非独立安装组件,其中,组件A是被依赖组件即第二待安装组件,组件B是依赖组件即第一待安装组件,组件A包括A1、A2和A3三个安装步骤,组件B包括B1、B2和B3三个安装步骤。基于组件A和组件B之间预先确定的依赖顺序关系,在对应的安装节点并行安装组件A和组件B。具体包括:在组件A对应的安装节点完成安装步骤A1后,在组件B对应的安装节点执行安装步骤B1,然后在组件A对应的安装节点执行安装步骤A2,再在组件B对应的安装节点执行安装步骤B2,最后在组件A对应的安装节点执行安装步骤A3,再在组件B对应的安装节点执行安装步骤B3,完成各个非独立安装组件的安装,也就是说,对于非独立安装组件之间的依赖顺序关系是安装步骤的顺序依赖,而非组件依赖。安装结束后,检查依赖组件B是否安装完成,如果没有完成,报错退出,用户需要检查依赖组件B没有完成安装的原因。另外,执行完一个组件的安装步骤,就要保存相应的安装进度到数据库以及本地文件系统中,这样安装出错时,用户在排查错误后可以从上次安装出错的进度处继续安装。
需要说明的是,第二待安装组件并不局限于一个,还可以是多个。例如,接上述实施例,假设存在依赖组件即第一待安装组件B,被依赖组件即第二待安装组件包括A和M,其中,组件A包括A1、A2和A3三个安装步骤,组件B包括B1、B2和B3三个安装步骤,组件M包括M1、M2和M3三个安装步骤。则需要先安装A1、再安装M1、再安装B1;再先安装A2、再安装M2、再安装B2;最后,再先安装A3、再安装M3、再安装B3。
另外,待安装软件完成安装后就可以对外提供服务,同时安装完成后还可以执行后置逻辑。其中,后置逻辑是用户编写的自定义的安装后置逻辑脚本,主要为后续安装程序的扩展提供支持,包括shell脚本和python脚本,命名格式为seq_install_desc.sh或着seq_install_desc.py,如01_install_set_outer_ntp.sh。
本发明提供一种软件安装方法,通过确定所述待安装软件中的各个组件在所述网络集群中的安装节点;根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装,基于待安装软件中的各个组件所配置的依赖关系,计算拓扑排序,实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上,还包括:
根据预先确定的待安装软件的组件间依赖顺序关系,生成一个有向无环图,其中,所述有向无环图是一个拓扑排序图;
基于所述有向无环图,将所述待安装软件中的各个组件依次安装在对应的安装节点上。
在本实施例中,基于组件间依赖顺序关系可以计算组件间的拓扑排序,生成一个有向无环图,图2是本发明提供的有向无环图的流程示意图,如图2所示,有向无环图中既包括非独立安装组件A和B,也包括独立安装组件C和D。如果计算中出现环状依赖,配置错误,需要提示用户重新配置组件间依赖顺序关系。另外,有向无环图的具体生成过程是现有技术,在本申请中,不再做具体限定。非独立安装组件是指安装时组件间有依赖关系,需要按照依赖关系、顺序以及既定的安装步骤进行安装的组件,先安装被依赖的组件,再安装依赖的组件,执行完一个组件的一个安装阶段后,接着执行另一个组件的安装阶段,也就是说,非独立安装组件之间在安装时是基于组件间依赖顺序关系按照各个组件的安装阶段交替进行安装的;而且由于非独立安装组件依赖度高,在有向无环图内靠后。
在本实施例中,基于预先确定的待安装软件的组件间依赖顺序关系,生成一个有向无环图,基于有向无环图,在对应的安装节点并行安装待安装软件中的各个组件。
本发明提供一种软件安装方法,通过明确根据预先确定的待安装软件的组件间依赖顺序关系,生成有向无环图,再基于有向无环图,将待安装软件中的各个组件依次安装在对应的安装节点上,具体阐明了有向无环图的生成路径,有力的支持了实现软件的灵活自动的可自定义的安装或升级过程。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,所述对所述待安装软件中的任意一个组件的安装,还包括:
在所述第一待安装组件为独立安装组件的情况下,在对应的安装节点上连续完成所述第一待安装组件的所有安装阶段。
在本实施例中,独立安装组件是指可以按照既定的安装步骤完整的执行完所有安装步骤的组件;独立安装组件安装完成后是可用的状态,可以对外提供服务能力;而且独立安装组件依赖度较低,在有向无环图内靠前。
在本实施例中,结合图2所示的有向无环图的流程示意图,假设待安装软件包括C和D两个独立安装组件,其中,组件C包括C1、C2和C3三个安装步骤,组件D包括D1、D2和D3三个安装步骤。基于组件C和组件D之间预先确定的依赖顺序关系生成一个有向无环图,基于有向无环图,确定安装顺序,在对应的安装节点安装组件C和组件D。具体包括:在组件C对应的安装节点连续完成安装步骤C1、C2和C3,即连续完成组件C所有的安装阶段,然后在组件D对应的安装节点连续完成安装步骤D1、D2和D3,即连续完成组件D所有的安装阶段,完成各个独立安装组件的安装。安装结束后,检查依赖组件D是否安装完成,如果没有完成,报错退出,用户需要检查依赖组件D没有完成安装的原因。另外,执行完一个组件的安装步骤,就要保存相应的安装进度到数据库以及本地文件系统中,这样安装出错时,用户在排查错误后可以从上次安装出错的进度处继续安装。
本发明提供一种软件安装方法,通过明确第一待安装组件为独立安装组件时,在对应的安装节点上连续完成第一待安装组件的所有安装阶段的情况,具体阐明了有向无环图不仅包括非独立安装组件,同时也包括独立安装组件,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格。
在本实施例中,待安装软件的需求是指安装待安装软件时待安装软件本身对网络集群所要求的安装条件。安装规格是指在整个安装期间由安装调度程序对待安装软件进行安装时所依据的安装模板。安装模板中包括待安装软件的针对各个节点的校验项即校验信息,具体包括CPU架构、CPU逻辑核数、存储节点或存储磁盘数、内存等服务器硬件信息,还包括常见Java应用的JVM配置、Hadoop yarn资源的分配等应用程序的资源分配。
在本实施例中,在安装待安装软件之前,根据待安装软件的需求对网络集群中的各个节点进行校验,也就是对待安装软件在网络集群中进行安装的硬件环境进行校验,最终确定待安装软件在网络集群中安装时的安装规格。
本发明提供一种软件安装方法,通过根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格,在待安装软件进行安装前,完成了对网络集群中各个节点的校验,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格,包括:
根据待安装软件的需求,确定至少一个候选安装规格;所述候选安装规格包括所述待安装软件的校验信息;
将所述至少一个候选安装规格所对应的校验信息传输到所述网络集群中的各个节点,以使得所述网络集群中的各个节点根据所述校验信息进行校验;
在接收到所述网络集群中的所有节点通过校验的消息后,从通过校验的所述候选安装规格中确定所述待安装软件在所述网络集群中安装时的安装规格。
在本实施例中,待安装软件的校验信息包括执行命令类、执行脚本类和内置校验。
在本实施例中,由待安装软件的需求确定一个或多个候选安装规格,将候选安装规格对应的校验信息分发到网络集群的各个节点中执行,将执行结果和预置的校验值进行对比,执行结果与预置的校验值一致则校验通过,其中,预置的校验值由待安装软件的开发人员在开发时确定,可以根据不同的应用场景在软件发布时软件运行所需的服务器硬件/软件条件进行自定义。具体包括:若校验信息为执行命令类,如校验节点的根目录大小的命令为“df|awk'$6=="/"{print$4}'”,通过执行命令的结果和预置的校验值进行比较,满足条件继续校验下一项;若校验信息为执行脚本类,如将用户预先编写的脚本放到安装目录的pre_install_check目录下,用户可在脚本中对安装环境进行检查,其中,脚本包括python类的脚本和shell类的脚本,如果校验不通过,脚本以非0退出码退出,对于python类的脚本,也可以通过抛出异常来终止校验;若校验信息为内置校验,即安装调度程序内部自己判断的校验,包括HOST_CNT(集群数量)和TPL_PATH(安装模板路径)。一个候选安装规格的全部校验信息通过后,说明此安装环境即对应的网络集群可以安装此规格的待安装软件。校验完成后如果安装环境满足多个候选安装规格,提示用户手动选择一个候选安装规格进行安装,用户选择安装规格后安装调度程序在整个安装期间会使用此安装规格作为模板进行安装。
另外,对待安装软件所要安装的节点可以预先定义相关的校验信息,如CPU数量和硬盘大小,并且支持用户自定义编写脚本。集群中有任意节点校验不通过,退出安装,提示用户检查各个安装节点或者校验信息。
本发明提供一种软件安装方法,通过进一步阐明确定待安装软件在网络集群中安装时的安装规格的具体过程,明确了在待安装软件进行安装前对网络集群中各个节点进行校验的具体路径,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
为所述待安装软件中的各个组件配置安装、运行时所需要的参数,并为所述网络集群的各个节点配置所述待安装软件中的各个组件安装、运行时所需要的环境参数。
在本实施例中,动态化配置待安装软件中的各个组件在安装、运行时需要的相关参数,使待安装软件的各个组件在安装、运行时可以动态获取预先配置的参数。并动态化配置待安装软件中的各个组件在安装、运行时需要的环境依赖即网络集群的各个节点所需要的环境参数,例如操作系统相关的默认配置,其中,操作系统可以为任意linux发行版本。
本发明提供一种软件安装方法,通过为待安装软件中的各个组件配置安装、运行时所需要的参数,达到参数可灵活配置的效果,通过为网络集群的各个节点配置待安装软件中的各个组件安装、运行时所需要的环境参数,使组件以最高效的方式运行,提供最优的服务,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装方法,在所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格之前,方法还包括:
引导用户输入安装所述待安装软件所需的信息;
根据所述信息,为各个节点生成免密登录信息;
其中,所述信息包括各个节点IP、Hostname、Root用户密码中的至少一个。
在本实施例中,IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址,是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。Hostname是主机名,用于在系统上显示或设置系统的主机名称;Root也称为根用户,是Unix系统、类UNIX系统、Android和iOS移动设备系统中的唯一的超级用户,可对根目录执行读写和执行操作,具有系统中的最高权限。
在本实施例中,引导用户输入安装待安装软件所需的各项信息,包括节点IP、Hostname和Root用户密码,根据引导用户输入的各项信息,为各个节点生成免密登录信息。
本发明提供一种软件安装方法,通过引导用户输入安装所述待安装软件所需的信息,并根据所述信息,为各个节点生成免密登录信息,使控制节点操作各个节点执行操作,通过一套控制逻辑,结合灵活可自定义的配置方式,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
为更好地说明本发明的技术方案,下面再次分别说明本发明中软件安装和软件升级的详细完整的过程。
完整的软件安装过程包括:
步骤1、初始化基础的安装环境,包括全局变量、创建安装程序临时文件目录。
步骤2、初始化命令行参数,设置日志级别。
步骤3、判断当前网络集群的安装环境是否可以继续执行安装程序,包括判断待安装软件中各个节点对应的CPU架构是否满足条件。
步骤4、初始化部分环境变量,以便执行后续的安装前置逻辑。
步骤5、执行安装前置逻辑,用户编写自定义的安装前置逻辑脚本,包括shell脚本和python脚本,命名格式为seq_install_desc.sh或着seq_install_desc.py,如01_install_set_outer_ntp.sh;前置逻辑主要为后续安装程序的扩展提供支持。
步骤6、为网络集群中各个节点创建ssh免密登录,以便控制节点操作其他节点,具体包括:控制节点创建内部用户,根据ssh命令生成公钥和私钥,将公钥上传到网络集群各个节点中。
步骤7、根据预先配置的校验信息校验各个节点,获取到一个合适的安装模板。
步骤8、根据组件配置化节点部署图生成一个全局的hosts文件,section为组件名称,value为组件的hostname,以便安装调度程序操作网络集群各个组件。
步骤9、生成全局hosts文件后追加全局环境变量,并检查全局环境变量。
步骤10、下发组件配置参数以及操作系统配置项到各个节点中。
步骤11、拷贝安装程序以及上述步骤生成的hosts文件到各个节点中,以便安装程序下发安装任务到相应节点中。
步骤12、检查待安装软件的安装版本是否符合要求。
步骤13、初始化组件安装管理器负责具体的安装工作,包括解压组件安装包、计算组件的依赖关系和确定组件的安装顺序。
步骤14、如果当前节点为控制节点,由初始化组件安装管理器确定待安装软件中组件在网络集群中各个节点的安装位置,根据全部的组件所配置的依赖关系计算拓扑排序,由各个组件的拓扑排序生成一个有向无环图。如果计算中有向无环图出现环状依赖,配置错误,需要提示用户重新配置依赖。
先完整的安装完所有独立安装组件,安装逻辑如下:基于有向无环图决定的待安装软件中组件的安装顺序,安装独立安装组件,自上而下执行完所有的预置安装阶段。每执行完一个组件的安装步骤,需要保存相应的安装进度到数据库以及本地文件系统中,以便在程序异常退出或待安装软件执行失败时可以快速恢复,以达到多次执行幂等的结果。安装完一个组件,此组件即可对外独立提供服务。
再并行安装所有的非独立安装组件,安装逻辑如下:基于有向无环图决定的待安装软件中组件的安装顺序,先安装被依赖的组件,后安装依赖的组件,被依赖的组件安装由本发明保障。安装非独立安装组件具体包括:按照预置安装阶段顺序以及依赖顺序执行一个被依赖组件的安装阶段。再执行下一个依赖组件的安装阶段,执行完所有非独立安装组件的安装步骤。每执行完一个组件的安装步骤,需要保存相应的安装进度到数据库以及本地文件系统中,以便安装出错后,排查错误后可以继续安装上次的安装进度安装。安装完一个组件的一个安装阶段任务,此组件暂不可对外独立提供服务,直到此组件的所有安装阶段被执行完,才可以对外独立提供服务。
如果当前节点为工作节点,并且存在控制节点下发的安装任务(独立安装的任务或者非独立安装的任务),则执行相应组件的安装任务。具体执行过程与控制节点的执行过程一致,此处不再赘述。
步骤15、执行安装完成的后置逻辑,此时软件的安装已经完成,并且可以对外提供服务。用户编写自定义的安装后置逻辑脚本,包括shell脚本和python脚本,命名格式为seq_install_desc.sh或着seq_install_desc.py,如01_install_set_outer_ntp.sh。
完整的软件升级过程包括:
步骤1、初始化全局变量,从组件部署表中查询组件部署位置,设置相应的全局环境变量,生成组件部署分布图到临时文件中,方便安装程序引用,根据组件配置化分布图,生成全局hosts文件,方便安装程序操作相应组件节点。
步骤2、执行升级前置逻辑,用户编写自定义的安装前置逻辑脚本,包括shell脚本和python脚本,命名格式为seq_install_desc.sh或着seq_install_desc.py,如01_install_set_outer_ntp.sh;前置逻辑主要为后续安装程序的扩展提供支持。
步骤3、验证免密登录信息,升级场景下为集群各节点做免密处理,以便控制节点操作其他节点。
步骤4、根据预先配置的校验信息校验网络集群中各个节点,获取到一个适配的安装模板。
步骤5、重新设置一些全局环境变量,并检查全局环境变量。
步骤6、拷贝待安装软件中的各个组件到对应的节点中,以便在各个节点中执行具体的安装任务。
步骤7、检查待安装软件的升级版本是否符合要求。
步骤8、初始化组件安装管理器负责具体的安装工作,包括解压组件安装包、计算组件的依赖关系和确定组件的安装顺序。
步骤9、如果当前节点为控制节点,由初始化组件安装管理器确定待安装软件中组件在网络集群中各个节点的安装位置,根据全部的组件所配置的依赖关系计算拓扑排序,由各个组件的拓扑排序生成一个有向无环图。如果计算中有向无环图出现环状依赖,配置错误,需要提示用户重新配置依赖。
先完整的安装完所有独立安装组件,安装逻辑如下:基于有向无环图决定的待安装软件中组件的安装顺序,安装独立安装组件,自上而下执行完所有的预置安装阶段。每执行完一个组件的安装步骤,需要保存相应的安装进度到数据库以及本地文件系统中,以便在程序异常退出或待安装软件执行失败时可以快速恢复,以达到多次执行幂等的结果。安装完一个组件,此组件即可对外独立提供服务。
再并行安装所有的非独立安装组件,安装逻辑如下:基于有向无环图决定的待安装软件中组件的安装顺序,先安装被依赖的组件,后安装依赖的组件,被依赖的组件安装由本发明保障。安装非独立安装组件具体包括:按照预置安装阶段顺序以及依赖顺序执行一个被依赖组件的安装阶段。再执行下一个依赖组件的安装阶段,执行完所有非独立安装组件的安装步骤。每执行完一个组件的安装步骤,需要保存相应的安装进度到数据库以及本地文件系统中,以便安装出错后,排查错误后可以继续安装上次的安装进度安装。安装完一个组件的一个安装阶段任务,此组件暂不可对外独立提供服务,直到此组件的所有安装阶段被执行完,才可以对外独立提供服务。
如果当前节点为工作节点,并且存在控制节点下发的安装任务(独立安装的任务或者非独立安装的任务),则执行相应组件的安装任务。具体执行过程与控制节点的执行过程一致,此处不再赘述。
步骤10、执行安装完成的后置逻辑,此时软件的安装已经完成,并且可以对外提供服务。用户编写自定义的安装后置逻辑脚本,包括shell脚本和python脚本,命名格式为seq_install_desc.sh或着seq_install_desc.py,如01_install_set_outer_ntp.sh。
下面对本发明提供的软件卸载方法进行描述,下文描述的软件卸载方法与上文描述的软件安装方法可相互对应参照,在本发明中软件的升级、安装、卸载三种软件行为由一套应用控制。
图3为本发明提供的软件卸载方法的流程示意图,如图3所示,本发明还提供一种软件卸载方法,用于实现对上述任一项所述软件安装方法所安装软件的卸载,包括:
步骤310、确定待卸载软件中的各个组件在网络集群中的安装节点;
步骤320、对所述待卸载软件的组件间依赖顺序关系做逆序操作,得到组件间依赖逆序关系;
步骤330、根据所述组件间依赖逆序关系,将所述待卸载软件中的各个组件依次从对应的安装节点上卸载。
在本实施例中,网络集群中的安装节点有多个,包括控制节点和工作节点两类,其中,控制节点可以控制工作节点执行由控制节点发送给工作节点的操作指令。组件间依赖顺序关系是指待安装软件中全部组件所配置的依赖关系。
在本实施例中,确定待卸载软件中的各个组件在网络集群中对应的安装节点的位置,基于待卸载软件的组件间依赖顺序关系,做逆序操作,得到待卸载软件组件间依赖逆序关系,根据待卸载软件组件间依赖逆序关系,先卸载上层的依赖组件,后卸载下层的被依赖组件,将待卸载软件中的各个组件依次从对应的安装节点上卸载。另外,卸载操作只需按照安装时的反向顺序依次卸载,不需要考虑可独立安装组件和非独立安装组件的不同情况。
本发明提供一种软件卸载方法,通过确定待卸载软件中的各个组件在网络集群中的安装节点,对待卸载软件的组件间依赖顺序关系做逆序操作,得到组件间依赖逆序关系,根据组件间依赖逆序关系,将待卸载软件中的各个组件依次从对应的安装节点上卸载,实现了安装在网络集群上的软件的有序卸载,丰富了基于有向无环图实现灵活自动的可自定义的软件部署方法。
下面对本发明提供的软件安装装置进行描述,下文描述的软件安装装置与上文描述的软件安装方法可相互对应参照。
图4为本发明提供的软件安装装置的结构图,如图4所示,本发明提供的软件安装装置,装置包括:
安装节点确定模块410,用于确定所述待安装软件中的各个组件在所述网络集群中的安装节点;
软件组件安装模块420,用于根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
本发明提供一种软件安装装置,通过设置安装节点确定模块和软件组件安装模块,基于待安装软件中的各个组件所配置的依赖关系,计算拓扑排序,生成一个有向无环图,基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装装置,所述软件组件安装模块420还包括:
软件独立安装组件安装单元,用于在所述第一待安装组件为独立安装组件的情况下,在对应的安装节点上连续完成所述第一待安装组件的所有安装阶段。
本发明提供一种软件安装装置,通过设置软件独立安装组件安装单元,具体阐明了有向无环图不仅包括非独立安装组件,同时也包括独立安装组件,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装装置,装置还包括:
节点校验模块,用于根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格。
本发明提供一种软件安装装置,通过设置节点校验模块,在待安装软件进行安装前,完成了对网络集群中各个节点的校验,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装装置,所述节点校验模块,包括:
节点校验单元,用于根据待安装软件的需求,确定至少一个候选安装规格;所述候选安装规格包括所述待安装软件的校验信息;
将所述至少一个候选安装规格所对应的校验信息传输到所述网络集群中的各个节点,以使得所述网络集群中的各个节点根据所述校验信息进行校验;
在接收到所述网络集群中的所有节点通过校验的消息后,从通过校验的所述候选安装规格中确定所述待安装软件在所述网络集群中安装时的安装规格。
本发明提供一种软件安装装置,通过进一步设置节点校验单元,明确了在待安装软件进行安装前对网络集群中各个节点进行校验的具体路径,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装装置,装置还包括:
参数配置模块,用于为所述待安装软件中的各个组件配置安装、运行时所需要的参数,并为所述网络集群的各个节点配置所述待安装软件中的各个组件安装、运行时所需要的环境参数。
本发明提供一种软件安装装置,通过设置参数配置模块,达到参数可灵活配置的效果,使组件以最高效的方式运行,提供最优的服务,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
基于上述任一实施例,在本实施例中,根据本发明提供的软件安装装置,装置还包括:
信息输入模块,用于引导用户输入安装所述待安装软件所需的信息;根据所述信息,为各个节点生成免密登录信息;其中,所述信息包括各个节点IP、Hostname、Root用户密码中的至少一个。
本发明提供一种软件安装装置,通过设置信息输入模块,使控制节点操作各个节点执行操作,有力的支持了基于有向无环图实现软件的灵活自动的可自定义的安装或升级。
本发明还提供一种软件卸载装置,用于实现对上述任一项所述软件安装装置所安装软件的卸载,装置包括:
安装节点确定模块,用于确定待卸载软件中的各个组件在网络集群中的安装节点;
组件间依赖逆序关系确定模块,用于对所述待卸载软件的组件间依赖顺序关系做逆序操作,得到组件间依赖逆序关系;
卸载模块,用于根据所述组件间依赖逆序关系,将所述待卸载软件中的各个组件依次从对应的安装节点上卸载。
本发明提供一种软件卸载装置,通过设置安装节点确定模块、组件间依赖逆序关系确定模块和卸载模块,实现了安装在网络集群上的软件的有序卸载,丰富了基于有向无环图实现灵活自动的可自定义的软件部署方法。
另一方面,本发明还提供一种电子设备,图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括处理器510、通信总线540、存储器530、通信接口520以及存储在所述存储器530上并可在所述处理器510上运行的计算机程序,其中,处理器510、通信接口520、存储器530通过通信总线540完成相互间的通信,处理器510可以调用存储器530中的逻辑指令,以执行软件安装方法,该方法包括:
确定待安装软件中的各个组件在所述网络集群中的安装节点;
根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,可以实现软件安装方法,该方法包括:
确定待安装软件中的各个组件在所述网络集群中的安装节点;
根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
最后,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够实现软件安装方法,该方法包括:
确定待安装软件中的各个组件在所述网络集群中的安装节点;
根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种软件安装方法,其特征在于,方法包括:
确定待安装软件中的各个组件在所述网络集群中的安装节点;
根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
2.根据权利要求1所述的软件安装方法,其特征在于,所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上,还包括:
根据预先确定的待安装软件的组件间依赖顺序关系,生成一个有向无环图,其中,所述有向无环图是一个拓扑排序图;
基于所述有向无环图,将所述待安装软件中的各个组件依次安装在对应的安装节点上。
3.根据权利要求1所述的软件安装方法,其特征在于,所述对所述待安装软件中的任意一个组件的安装,还包括:
在所述第一待安装组件为独立安装组件的情况下,在对应的安装节点上连续完成所述第一待安装组件的所有安装阶段。
4.根据权利要求1所述的软件安装方法,其特征在于,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格。
5.根据权利要求4所述的软件安装方法,其特征在于,所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格,包括:
根据待安装软件的需求,确定至少一个候选安装规格;所述候选安装规格包括所述待安装软件的校验信息;
将所述至少一个候选安装规格所对应的校验信息传输到所述网络集群中的各个节点,以使得所述网络集群中的各个节点根据所述校验信息进行校验;
在接收到所述网络集群中的所有节点通过校验的消息后,从通过校验的所述候选安装规格中确定所述待安装软件在所述网络集群中安装时的安装规格。
6.根据权利要求1所述的软件安装方法,其特征在于,在所述根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上之前,方法还包括:
为所述待安装软件中的各个组件配置安装、运行时所需要的参数,并为所述网络集群的各个节点配置所述待安装软件中的各个组件安装、运行时所需要的环境参数。
7.根据权利要求4所述的软件安装方法,其特征在于,在所述根据待安装软件的需求,对网络集群中的各个节点进行校验,确定所述待安装软件在所述网络集群中安装时的安装规格之前,方法还包括:
引导用户输入安装所述待安装软件所需的信息;
根据所述信息,为各个节点生成免密登录信息;
其中,所述信息包括各个节点IP、Hostname、Root用户密码中的至少一个。
8.一种软件卸载方法,其特征在于,用于实现对权利要求1至7任一项所述软件安装方法所安装软件的卸载,包括:
确定待卸载软件中的各个组件在网络集群中的安装节点;
对所述待卸载软件的组件间依赖顺序关系做逆序操作,得到组件间依赖逆序关系;
根据所述组件间依赖逆序关系,将所述待卸载软件中的各个组件依次从对应的安装节点上卸载。
9.一种软件安装装置,其特征在于,装置包括:
安装节点确定模块,用于确定待安装软件中的各个组件在所述网络集群中的安装节点;
软件组件安装模块,用于根据预先确定的待安装软件的组件间依赖顺序关系,将所述待安装软件中的各个组件依次安装在对应的安装节点上;其中,对所述待安装软件中的任意一个组件的安装包括:
判断第一待安装组件是否为独立安装组件;其中,所述第一待安装组件为所述待安装软件中的当前待安装组件;
在所述第一待安装组件为非独立安装组件的情况下,根据组件间依赖顺序关系,确定所述第一待安装组件依赖的至少一个第二待安装组件;在所述第二待安装组件对应的安装节点上完成所述第二待安装组件的一个安装阶段后,在所述第一待安装组件对应的安装节点上执行所述第一待安装组件的一个安装阶段,然后在所述第二待安装组件对应的安装节点上再执行所述第二待安装组件的下一个安装阶段;在所述第一待安装组件的所有安装阶段均完成后,完成对所述第一待安装组件的安装。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述软件安装方法的步骤。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述软件安装方法的步骤。
12.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,其特征在于,所述指令在被执行时用于实现如权利要求1至7任一项所述软件安装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210605583.5A CN117193800A (zh) | 2022-05-30 | 2022-05-30 | 一种软件安装方法、装置、电子设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210605583.5A CN117193800A (zh) | 2022-05-30 | 2022-05-30 | 一种软件安装方法、装置、电子设备与存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193800A true CN117193800A (zh) | 2023-12-08 |
Family
ID=89000297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210605583.5A Pending CN117193800A (zh) | 2022-05-30 | 2022-05-30 | 一种软件安装方法、装置、电子设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193800A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407008A (zh) * | 2023-12-14 | 2024-01-16 | 之江实验室 | 一种面向微小型数据中心的系统组件集群部署方法及装置 |
-
2022
- 2022-05-30 CN CN202210605583.5A patent/CN117193800A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407008A (zh) * | 2023-12-14 | 2024-01-16 | 之江实验室 | 一种面向微小型数据中心的系统组件集群部署方法及装置 |
CN117407008B (zh) * | 2023-12-14 | 2024-04-19 | 之江实验室 | 一种面向微小型数据中心的系统组件集群部署方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170269921A1 (en) | Continuous and automatic application development and deployment | |
US10324709B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
US9792141B1 (en) | Configured generation of virtual machine images | |
US8627311B2 (en) | Systems, methods, and apparatus to deploy software | |
WO2019113216A1 (en) | Machine generated automation code for software development and infrastructure operations | |
WO2017206667A1 (zh) | 分布式部署Hadoop集群的方法及装置 | |
US20150271014A1 (en) | Automatic configuration of new components by infrastructure management software | |
CN110647332A (zh) | 基于容器云的软件部署方法和装置 | |
JP2003114801A (ja) | コンピュータサービスおよびプログラマブルデバイスの管理を自動化するシステムおよび方法 | |
CN111414169B (zh) | Bmc镜像升级方法及相关组件 | |
CN109901985B (zh) | 分布式测试装置及方法、存储介质和电子设备 | |
CN111104201A (zh) | 系统迁移方法和装置、电子设备、存储介质 | |
CN114791856B (zh) | 基于K8s的分布式训练任务处理方法、相关设备及介质 | |
CN113254054B (zh) | 一种智能合约一站式开发系统及方法 | |
Koziolek et al. | Lightweight kubernetes distributions: A performance comparison of microk8s, k3s, k0s, and microshift | |
CN106502713A (zh) | 一种软件升级方法和系统 | |
CN112152843B (zh) | 一种集群节点部署方法、装置、系统和电子设备 | |
CN106126303B (zh) | Linux操作系统的安装方法、装置及系统 | |
CN117170803A (zh) | 生成信创操作系统流水线的方法、电子设备及存储介质 | |
CN117193800A (zh) | 一种软件安装方法、装置、电子设备与存储介质 | |
WO2020199597A1 (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN111984623A (zh) | 数据库集群自动化部署方法、装置、介质和电子设备 | |
CN113254158B (zh) | 一种深度学习系统的部署方法和装置 | |
CN110688130A (zh) | 物理机部署方法、装置、可读存储介质及电子设备 | |
US20230132531A1 (en) | Software Development Project Infrastructure Builder Tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |