具体实施方式
目前的服务器组件更新方案中,需要用户(如管理员)手工管理服务器中组件的更新,如触发服务器下载最新版本的组件以及安装所下载的组件等。当同一用户需要管理的服务器数量较多时,对组件更新的管理工作量将会比较大,组件更新的效率也较低。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,图1为本发明实施例提供的一种组件更新的网络架构示意图,如图1所示,该网络架构中适用于包括管理平台(或称为服务器管理平台)和服务器的服务器管理系统,在图1所示的网络架构中,通过在服务器管理系统中的各服务器中部署代理,代理可以获取服务器本地的组件信息,并将获取到的组件信息上报给管理平台;管理平台可以根据代理上报的服务器的组件信息确定该服务器是否需要进行组件更新,并当确定服务器需要进行组件更新时,向代理发送组件更新指令;代理接收到组件更新指令后,将该组件更新指令发送给服务器,由服务器根据组件更新指令进行组件更新,从而可以实现服务器组件的批量自动更新,提高组件更新的效率。
值得说明的是,在本发明实施例中,服务器中部署的代理可以由管理平台推送到服务器管理系统中的各服务器,也可以由用户通过手动的方式预先部署在服务器管理系统中的各服务器,其具体实现本发明实施例不做赘述。
基于图1所示的网络架构,本发明实施例提供了一种组件更新方法,请参见图2,为本发明实施例提供的一种组件更新方法的流程示意图,如图2所示,该组件更新方法可以包括以下步骤:
需要说明的是,在本发明实施例中,步骤201~步骤202的执行主体可以为图1所示网络架构中的任一代理,为便于描述,以下以步骤201~步骤202的执行主体为代理为例进行说明。
步骤201、获取服务器中的组件信息,并将获取到的组件信息发送给管理平台,以使管理平台根据组件信息确定服务器是否需要进行组件更新。
本发明实施例中,服务器中部署的代理可以获取自身所在服务器中的组件信息,如组件版本信息,并将获取到的组件信息发送给管理平台。
其中,在本发明实施例中,为了实现组件的统一管理,可以对服务器中不同功能的组件进行封装,并提供统一的管理接口,服务器中部署的代理可以通过该统一的管理接口获取组件信息,并在后续流程中管理组件更新。
本发明实施例中,代理可以主动地获取自身所在服务器中的组件信息,或者由管理平台触发获取服务器中的组件信息。
相应地,作为一种可选的实施方式,上述步骤201中,获取服务器中的组件信息,可以包括:
周期性地获取服务器中的组件信息。
在该实施方式中,代理可以周期性(该周期可以根据具体场景预先设定,如12小时、24小时等)获取自身所在服务器中的组件信息,并在获取到组件信息后,将获取到的组件信息上报给管理平台。
作为另一种可选的实施方式,上述步骤201中,获取服务器中的组件信息,可以包括:
当接收到管理平台发送的组件信息获取请求时,获取服务器中的组件信息。
在该实施方式中,管理平台可以周期性(该周期可以根据具体场景预先设定,如12小时、24小时等)地向各服务器中部署的代理发送组件信息获取请求,或者,管理平台可以记录各组件的最新版本信息,并在组件信息存在更新(如组件的最新版本信息发生了变化)时向各服务器中部署的代理发送组件信息获取请求。
相应地,当代理接收到管理平台发送的组件信息获取请求时,可以获取自身所在服务器的组件信息,并将获取到的组件信息上报给管理平台。
本发明实施例中,管理平台接收到代理上报的组件信息时,可以确定是否需要进行组件更新,例如,当代理上报的组件信息为组件版本信息时,管理平台可以通过比较代理上报的服务器中的组件版本信息与管理平台自身记录的相应组件的最新版本信息,若二者不一致,则确定需要进行组件更新。
本发明实施例中,服务器中部署的代理向管理平台上报服务器中的组件信息时,还可以携带服务器的标识信息,如服务器的IP(Internet Protocol,互联网协议)地址;相应地,当管理平台确定服务器需要进行组件更新时,可以根据服务器的IP地址向相应地服务器中部署的代理发送相关指令。
步骤202、接收管理平台发送的组件更新指令,并将接收到的组件更新指令发送给服务器,以使服务器根据组件更新指令进行组件更新。
本发明实施例中,当管理平台确定服务器需要进行组件更新时,管理平台可以向服务器中部署的代理下发组件更新指令。
其中,管理平台确定服务器需要进行组件更新时,还可以在管理界面中向用户(如管理员)展示服务器可以更新的组件,由用户确定需要更新的组件,进而,管理平台可以根据用户的操作指令向相应服务器中部署的代理下发指示更新相应组件的组件更新指令。
举例来说,假设管理平台通过比较代理上报的服务器中的组件版本信息以及各组件的最新版本信息确定服务器1需要更新组件1、2、3,服务器2需要更新组件2、4、5,服务器3需要更新组件1和4,则管理平台可以在管理界面中向管理员展示各服务器需要更新的组件,由管理员选择各服务器需要更新哪些组件。假设管理员选择服务器1更新组件1和2,服务器2更新组件2和4,服务器3更新组件1和4,则管理平台可以分别向服务器1、服务器2和服务器3中部署的代理下发相应的组件更新指令,分别指示服务器1中部署的代理更新服务器1中的组件1和2,服务器2中的代理更新服务器2中的组件2和4,以及服务器3中的代理更新服务器3中的组件1和4。
本发明实施例中,代理接收到管理平台发送的组件更新指令后,可以将接收到的组件更新指令发送给服务器,由服务器根据组件更新指令进行组件更新。
在一种实施方式中,管理平台向代理下发的组件更新指令中可以携带需要更新的组件的标识信息(如组件名称),以及对应的更新组件(最新版本的组件,若存在多个需要更新的组件,可以为组件包),从而,服务器接收到组件更新指令后可以直接根据其中携带的组件的标识信息确定需要更新的组件,并根据其中携带的组件进行组件更新。
在另一种实施方式中,管理平台向代理下发的组件更新指令中可以携带需要更新的组件的标识信息,以及对应的更新组件的下载地址,从而,服务器接收到组件更新指令后可以根据组其中携带的组件的标识信息确定需要更新的组件,并根据其中携带的更新组件的下载地址下载相应的更新组件,并进行组件更新。
可见,在图2所示的方法流程中,通过在服务器中部署代理,该代理向下实现了对各种组件安装包提供的统一接口进行操作,向上实现了为管理平台提供获取组件信息和下发组件管理指令的接口,从而实现了服务器组件的批量自动更新,提高组件更新的效率。
进一步地,在本发明实施例中,通过服务器上部署的上述代理,管理平台还可以实时获取各服务器上的组件更新状态,并将获取到的组件更新状态展示给用户。
相应地,作为一种可选的实施方式,本发明实施例提供的组件更新方法还可以包括:
接收管理平台发送的更新状态查询指令;
向管理平台发送服务器的组件更新状态。
在该实施方式中,当用户想要查询服务器的组件更新状态时,用户可以通过在管理平台的相关管理界面上进行操作,触发管理平台向相应服务器中部署的代理下发更新状态查询指令。
服务器中部署的代理接收到管理平台下发的更新状态查询指令后,可以获取服务器中各组件的更新状态,并将服务器的组件更新状态上报给管理平台,由管理平台在相应管理界面中展示给用户。
可选地,在本发明实施例中,组件更新状态可以包括但不限于组件更新进度或组件更新结果,其中,该组件更新结果可以包括组件更新成功或组件更新失败。
例如,管理平台向用户展示的组件更新状态可以如表1所示:
表1
其中,Windows和Linux分别为两种不同的操作系统类型,HDM_1.01.08_Linux.rpm为Linux操作系统下的一种组件。
基于上述更新状态展示,用户可以实时获知各服务器上的组件更新状态,并在必要时采取相应处理。
进一步地,在一种可选的实施方式中,当服务器中发生组件更新失败时,该服务器中部署的代理可以向管理平台发送携带有失败原因的组件更新结果,由管理平台将组件更新结果(即更新失败)以及失败原因展示给用户,由用户根据失败原因采取相应措施。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在服务器中部署代理,并由各服务器中部署的代理获取自身所在服务器中的组件信息,并将获取到的组件信息发送给管理平台,以使管理平台根据接收到的组件信息确定相应的服务器是否需要进行组件更新;当服务器中部署的代理接收到管理平台发送的组件更新指令时,将接收到的组件更新指令发送给服务器,以使服务器根据接收到的组件更新指令进行组件更新,从而实现了服务器组件的批量自动更新,与现有组件更新方案中通过管理员手动控制服务器进行组件更新的实现相比,提高了组件更新的效率。
请参见图3,为本发明实施例提供的一种组件更新装置的结构示意图,其中,该组件更新装置可以应用于图1所示网络架构中的代理,如图3所示,该组件更新装置可以包括:
获取单元310,用于获取服务器中的组件信息;
发送单元320,用于将所述组件信息发送给管理平台,以使所述管理平台根据所述组件信息确定所述服务器是否需要进行组件更新;
接收单元330,用于接收所述管理平台发送的组件更新指令;
所述发送单元320,还用于将组件更新指令发送给所述服务器,以使所述服务器根据所述组件更新指令进行组件更新。
在可选实施例中,所述获取单元310,可以具体用于周期性地获取服务器中的组件信息;或,当所述接收单元接收到管理平台发送的组件信息获取请求时,获取服务器中的组件信息。
在可选实施例中,所述发送单元320发送给服务器的组件更新指令,携带有需要更新的组件的标识信息以及对应的更新组件,以使所述服务器根据所述组件更新指令中携带组件的标识信息确定需要更新的组件,并根据所述组件更新指令中携带的更新组件进行组件更新;
或,
携带有需要更新的组件的标识信息以及对应的更新组件的下载地址,以使所述服务器根据所述组件更新指令中携带的组件的标识信息确定需要更新的组件,并根据所述组件更新指令中携带的组件的下载地址下载相应更新组件,并根据下载的更新组件进行组件更新。
在可选实施例中,所述接收单元330,还可以用于接收所述管理平台发送的更新状态查询指令;
所述发送单元320,还可以用于向所述管理平台发送所述服务器的组件更新状态。
在可选实施例中,所述组件更新状态包括组件更新进度或组件更新结果;其中,所述组件更新结果包括组件更新成功或组件更新失败。
在可选实施例中,所述发送单元320,还可以用于当服务器发生组件更新失败时,向所述管理平台发送携带有失败原因的组件更新结果。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过在服务器中部署代理,并由各服务器中部署的代理获取自身所在服务器中的组件信息,并将获取到的组件信息发送给管理平台,以使管理平台根据接收到的组件信息确定相应的服务器是否需要进行组件更新;当服务器中部署的代理接收到管理平台发送的组件更新指令时,将接收到的组件更新指令发送给服务器,以使服务器根据接收到的组件更新指令进行组件更新,从而实现了服务器组件的批量自动更新,与现有组件更新方案中通过管理员手动控制服务器进行组件更新的实现相比,提高了组件更新的效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。