本发明涉及服务器刷新技术领域,具体提供一种服务器bios的远程刷新方法及系统。
背景技术:
服务器的bios(basicinputoutputsystem)即基本输入输出系统,是一组固化到服务器内主板上一个rom芯片上的程序,它保存着服务器最重要的基本输入输出的程序、开机后自检程序和系统自动启动程序,它可从cmos中读写系统设置的具体信息,其重要功能为服务器提供最底层的、最直接的硬件设置和控制。
目前,主流的服务器bios远程更新方法主要是通过bmc(baseboardmanagementcontroller即基板管理控制器)web页面,或者是本地通过专门的刷新工具来更新,这两种情况都对操作系统或者平台有一定的要求,在研发、测试和维护过程中不可避免的需要更新bios,有时系统或者环境的限制会影响更新效率。
技术实现要素:
本发明的技术任务是针对上述存在的问题,提供一种不受操作系统或者平台限制,并能保证更新效率的服务器bios的远程刷新方法。
本发明进一步的技术任务是提供一种服务器bios的远程刷新系统。
为实现上述目的,本发明提供了如下技术方案:
一种服务器bios的远程刷新方法,所述服务器bios的远程刷新方法基于url路径,在主机端和远程服务器的bmc间建立通讯连接,主机端向远程服务器的bmc上传bios固件文件,远程服务器的bmc对上传的bios固件文件进行缓存,用户向主机端输入bios配置更新指令,同时主机端将bios配置更新指令发送给远程服务器的bmc,远程服务器的bmc接收到更新指令后依据缓存的bios固件文件完成对bios的远程更新,主机端获取更新结果。
所述服务器bios的远程刷新方法基于purley平台实现。
作为优选,所示方法通过http接口使用curl命令将bios配置更新指令发送至远程服务器的bmc。
作为优选,所述主机端和远程服务器的bmc间建立通讯连接的具体过程为:用户在主机端输入用户名和用户密码,生成bmc登录指令,主机端将生成的bmc登录指令发送至远程服务器的bmc,远程服务器的bmc根据接收到的登录指令,对用户名和用户密码进行确认,确认通过时主机端登录进入远程服务器,与远程服务器的bmc间建立通讯连接。
一种服务器bios的远程刷新系统,所述系统包括以下模块:
通讯连接建立模块:用于基于url路径,在主机端和远程服务器的bmc间建立通讯连接;
固件文件上传模块:设置于主机端,用于由主机端向远程服务器的bmc上传bios固件文件;
固件文件缓存模块:设置于远程服务器,用于缓存主机端发送的bios固件文件;
bios配置更新指令接收模块:设置于主机端,用于接收用户输入的bios配置更新指令;
bios配置更新指令发送模块:设置于主机端,用于向远程服务器的bmc发送bios配置更新指令;
远程更新模块:设置于远程服务器,用于接收到主机端发送的bios配置更新指令后,依据bios固件文件完成bios的远程更新;
更新结果获取模块:设置于主机端,用于获取bios的更新结果。
作为优选,所述通讯连接建立模块包括以下单元:
bmc登录指令生成单元:设置于主机端,用于根据接收的用户输入的用户名和用户密码生成bmc登录指令;
bmc登录指令发送单元:设置于主机端,用于将生成的bmc登录指令发送至远程服务器的bmc;
登录确认单元:设置于远程服务器,用于根据接收到的bmc登录指令,对用户输入的用户名和用户密码进行确认,当确认通过时,主机端登录进入远程服务器的bmc。
本发明进一步的技术任务是提供一种批量服务器bios的远程刷新方法。
一种批量服务器bios的远程刷新方法,所述批量服务器bios的远程刷新方法包括以下步骤:
将一单台服务器bios的远程刷新指令定义到一个刷新函数中,并把biosip地址作为单台服务器bios刷新函数的参数;
将需要更新的远程服务器的biosip地址保存到ip.csv文件中;
根据ip.csv文件中远程服务器的biosip地址,为每一个biosip地址调用所述单台服务器bios刷新函数,根据单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新。
本发明中通过dhcp的方式动态分配ip地址给bmc,然后根据指定的url路径对批量服务器的bios进行刷新。
作为优选,所述单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新的过程为:在主机端和远程服务器的bmc间建立通讯连接,主机端向远程服务器的bmc上传bios固件文件,服务器的bmc对上传的bios固件文件进行缓存,用户向主机端输入bios配置更新指令,同时主机端将bios配置更新指令发送给服务器的bmc,服务器的bmc接收到更新指令后依据缓存的bios固件文件完成对bios的远程更新,主机端获取更新结果。
本发明更进一步的技术任务是提供一种批量服务器bios的远程刷新系统。
一种批量服务器bios的远程刷新系统,所述系统具体包括以下模块:
刷新函数定义模块:用于定义一单台服务器bios刷新函数,并把biosip地址作为单台服务器bios刷新函数的参数;
ip地址保存模块:用于将需要更新的服务器的biosip地址保存到ip.csv文件中;
指令执行模块:用于根据ip.csv文件中服务器的biosip地址,为每一个biosip地址调用所述单台服务器bios刷新函数,根据单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新。
作为优选,所述指令执行模块具体包括以下单元:
通讯连接建立单元:用于基于url路径,在主机端和远程服务器的bmc间建立通讯连接;
固件文件上传单元:设置于主机端,用于由主机端向远程服务器的bmc上传bios固件文件;
固件文件缓存单元:设置于远程服务器,用于缓存主机端发送的bios固件文件;
bios配置更新指令接收单元:设置于主机端,用于接收用户输入的bios配置更新指令;
bios配置更新指令发送单元:设置于主机端,用于向远程服务器的bmc发送bios配置更新指令;
远程更新单元:设置于远程服务器,用于接收到主机端发送的bios配置更新指令后,依据bios固件文件完成bios的远程更新;
更新结果获取单元:设置于主机端,用于获取bios的更新结果。
作为优选,所述通讯连接建立单元包括以下部:
bmc登录指令生成部:设置于主机端,用于根据接收的用户输入的用户名和用户密码生成bmc登录指令;
bmc登录指令发送部:设置于主机端,用于将生成的bmc登录指令发送至远程服务器的bmc;
登录确认部:设置于远程服务器,用于根据接收到的bmc登录指令,对用户输入的用户名和用户密码进行确认,当确认通过时,主机端登录进入远程服务器的bmc。
与现有技术相比,本发明的服务器bios的远程刷新方法具有以下突出的有益效果:所述服务器bios的远程刷新方法基于url路径,通过在主机端与远程服务器的bmc间建立通讯连接,主机端将bios配置更新指令发送给服务器的bmc,服务器的bmc接收到更新指令后依据缓存的bios固件文件完成对bios的远程更新,不受操作系统或者平台限制,并能保证更新效率,具有良好的推广应用价值。
附图说明
图1是本发明所述服务器bios的远程刷新系统的拓扑图;
图2是本发明所述批量服务器bios的远程刷新系统的拓扑图。
具体实施方式
下面将结合附图和实施例,对本发明的服务器bios的远程刷新方法及系统作进一步详细说明。
实施例
本发明的服务器bios的远程刷新方法,通过http接口使用curl命令将bios配置更新指令发送至远程服务器的bmc。
首先通过远程服务器的bmc远程关机,命令为:
ipmitool–ilanplus–hbmc_ip–uuser–ppassworkchassispoweroff。
基于url路径,在主机端和远程服务器的bmc间建立通讯连接,命令为:
curl-xpost-d"username=xx&password=xx""http://destination_ip/destination_path/session"-c./cookie。
在主机端和远程服务器的bmc间建立通讯连接具体过程为:用户在主机端输入用户名和用户密码,生成bmc登录指令,主机端将生成的bmc登录指令发送至远程服务器的bmc,远程服务器的bmc根据接收到的登录指令,对用户名和用户密码进行确认,确认通过时主机端登录进入远程服务器,与远程服务器的bmc间建立通讯连接。
主机端向远程服务器的bmc上传bios固件文件,服务器的bmc对上传的bios固件文件进行缓存。其中,该bios固件文件firmware上传的命令为:
curl-f"fwimage=@filelocation"-h"x-csrftoken:xxxxxxxx"http://destination_ip/destination_path/bios/firmware-b./cookie。
用户向主机端输入bios配置更新指令,同时主机端将bios配置更新指令发送给服务器的bmc命令为:
curl-xpost--data"action=xx"-h"x-csrftoken:xxxxxxxx"http://destination_ip/destination_path/bios/configuration-b./cookie。
服务器的bmc接收到更新指令后依据缓存的bios固件文件完成对bios的远程更新,命令为:
curl-xpost--data"action=x"-h"x-csrftoken:xxxxxxxx"http://destination_ip/destination_path/bios/upgrade-b./cookie。
主机端获取更新结果,命令为:
curl-g-h"x-csrftoken:xxxxxxxx"http://destination_ip/destination_path/bios/status-b./cookie。
更新完成后通过远程服务器bmc远程开机,命令为:
ipmitool–ilanplus–hbmc_ip–uuser–ppassworkchassispoweron。
如图1所示,本发明的服务器bios的远程刷新系统,包括以下模块:
通讯连接建立模块:用于基于url路径,在主机端和远程服务器的bmc间建立通讯连接。
该通讯连接建立模块包括以下单元:
bmc登录指令生成单元:设置于主机端,用于根据接收的用户输入的用户名和用户密码生成bmc登录指令;
bmc登录指令发送单元:设置于主机端,用于将生成的bmc登录指令发送至远程服务器的bmc;
登录确认模块:设置于远程服务器,用于根据接收到的bmc登录指令,对用户输入的用户名和用户密码进行确认,当确认通过时,主机端登录进入远程服务器的bmc。
固件文件上传模块:设置于主机端,用于由主机端向远程服务器的bmc上传bios固件文件。
固件文件缓存模块:设置于远程服务器,用于缓存主机端发送的bios固件文件。
bios配置更新指令接收模块:设置于主机端,用于接收用户输入的bios配置更新指令。
bios配置更新指令发送模块:设置于主机端,用于向远程服务器的bmc发送bios配置更新指令。
远程更新模块:设置于远程服务器,用于接收到主机端发送的bios配置更新指令后,依据bios固件文件完成bios的远程更新。
更新结果获取模块:设置于主机端,用于获取bios的更新结果。
本发明的批量服务器bios的远程刷新方法,包括以下步骤:
将一单台服务器bios的远程刷新指令定义到一个刷新函数中,并把biosip地址作为单台服务器bios刷新函数的参数,如bmc_update()。
将需要更新的远程服务器的biosip地址保存到ip.csv文件中。
根据ip.csv文件中远程服务器的biosip地址,为每一个biosip地址调用所述单台服务器bios刷新函数,根据单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新,命令为:
foripin`catip.csv`
do
{
bmc_update$ip
}&
done。
该过程中,单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新的过程为:在主机端和远程服务器的bmc间建立通讯连接,主机端向远程服务器的bmc上传bios固件文件,服务器的bmc对上传的bios固件文件进行缓存,用户向主机端输入bios配置更新指令,同时主机端将bios配置更新指令发送给服务器的bmc,服务器的bmc接收到更新指令后依据缓存的bios固件文件完成对bios的远程更新。
如图2所示,本发明的批量服务器bios的远程刷新系统,具体包括以下模块:
刷新函数定义模块:用于定义一单台服务器bios刷新函数,并把biosip地址作为单台服务器bios刷新函数的参数;
ip地址保存模块:用于将需要更新的服务器的biosip地址保存到ip.csv文件中;
指令执行模块:用于根据ip.csv文件中服务器的biosip地址,为每一个biosip地址调用所述单台服务器bios刷新函数,根据单台服务器bios刷新函数对应的远程刷新指令完成对bios的远程更新。
该指令执行模块包括以下单元:
通讯连接建立单元:用于基于url路径,在主机端和远程服务器的bmc间建立通讯连接。
固件文件上传单元:设置于主机端,用于由主机端向远程服务器的bmc上传bios固件文件。
固件文件缓存单元:设置于远程服务器,用于缓存主机端发送的bios固件文件。
bios配置更新指令接收单元:设置于主机端,用于接收用户输入的bios配置更新指令。
bios配置更新指令发送单元:设置于主机端,用于向远程服务器的bmc发送bios配置更新指令。
远程更新单元:设置于远程服务器,用于接收到主机端发送的bios配置更新指令后,依据bios固件文件完成bios的远程更新。
其中,通讯连接建立单元包括以下部:
bmc登录指令生成部:设置于主机端,用于根据接收的用户输入的用户名和用户密码生成bmc登录指令;
bmc登录指令发送部:设置于主机端,用于将生成的bmc登录指令发送至远程服务器的bmc;
登录确认部:设置于远程服务器,用于根据接收到的bmc登录指令,对用户输入的用户名和用户密码进行确认,当确认通过时,主机端登录进入远程服务器的bmc。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。