python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法。

背景技术:

随着现代服务器主板技术的发展,主板设计形态复杂多变。无论是设计成本还是后期使用过程中的维护成本都很高。如何最大限度保障硬件的安全运行,维护的及时高效,服务器行业经过多年的积累逐渐形成了IPMI规范。目前该规范已经发布到2.0版本,硬件提供商以aspeed的 ast2400 和ast2500芯片使用率较高,软件提供商以AMI提供的BMC固件版本在工业领域使用率较高。行业的成熟度的提升,应用的积累推广,使得现代服务器主板基本标配BMC方案。大量的BMC方案的应用,对BMC的升级提出了更高效的要求。

BMC是一个软件系统,主要负责初始化主板管理控制器、远程监控管理主板、固件升级等功能。服务器主板上电后,在关机状态下,BMC软件就开始运行,首先运行Boot loader, 初始化管理控制器硬件设备、建立内存空间的映射图,然后调用操作系统内核,进入系统,运行BMC服务程序。在上电关机情况下,BMC软件可完成所有正常操作,并对整个主板开始管理,进入系统运行服务程序, BMC服务程序可以和BIOS进行通信。

现在服务器BMC供应商提供的方案均针对单机板卡BMC的升级方案。主要应用与研发阶段BMC的刷新。针对部署以后大面积的BMC固件升级没有一个高效的方案,往往都是要求客户维护人员对每一台机器进行一次升级操作。维护人员需要准确知道每一台机子的IP地址,然后才能对这台机子进行独立升级,升级一般需要10分钟左右才能完成。然后人工查看版本信息来确认升级成功。整个过程耗时,一天下来一个维护人员也升级不了多少机子。

因此,如何能够在批量范围内升级BMC固件,满足客户快速的升级要求,是本领域技术人员所亟待解决的技术问题。

技术实现要素:

为了解决现有技术中的问题,本发明提供了一种基于Python实现BMC批量升级的方法。

本发明提供了一种基于Python实现BMC批量升级的方法, Python程序读取配置文件的信息,根据读取到的信息对参数进行初始化设定,设定完成以后执行对目标的网段扫描,所有目标的网段全部扫描完成以后,Python程序一次性为所有目标机器创建独立的烧录线程,完成BMC批量升级。

作为本发明的进一步改进,管理用户在配置文件的网段配置文件内设置需要升级的服务器所处的网段。

作为本发明的进一步改进,管理用户在配置文件的配置参数文件内设置目标机器的机型和该机型对应的BMC固件名称,版本信息,以及烧录过程的交互控制参数。

作为本发明的进一步改进,设定完成以后执行对目标的网段扫描,该扫描过程中主要采用ipmitool工具对fru信息进行检索,跟配置的目标机器的机型进行对比,如果对比一致,则将信息录入到目标机器列表当中,如果不一致,则扫描下一个IP。

作为本发明的进一步改进,所述基于Python实现BMC批量升级的方法包括以下步骤:

S1、Python程序读取配置文件的信息;

S2、根据读取到的信息对参数进行初始化设定;

S3、扫描目标网段;

S4、判断是否为目标机器 ,如果否,则返回步骤S3,如果是,则进入下一步骤;

S5、将扫描到的所有目标机器添加到目标机器列表;

S6、打印目标机器列表;

S7、用户确认是否进行BMC批量升级,如果否,则结束,如果是,则进入下一步骤;

S8、批量创建烧录线程;

S9、等待烧录完成;

S10、等待重启完成;

S11、校验升级版本;

S12、打印升级报告;

S13、结束。

作为本发明的进一步改进,在步骤S11中,通过ipmitool读取固件版本信息进行校对。

本发明的有益效果是:通过上述方案,实现了BMC批量升级,能够在批量范围内升级BMC固件,满足客户快速的升级要求,高效升级,降低客户维护时间以及成本,降低客户技术人员的维护工作量,简单方便。

附图说明

图1是本发明一种基于Python实现BMC批量升级的方法的用例图。

图2是本发明一种基于Python实现BMC批量升级的方法的流程图。

图3是本发明一种基于Python实现BMC批量升级的方法的序列图。

具体实施方式

下面结合附图说明及具体实施方式对本发明作进一步说明。

名词解释如下:

BMC:基板管理控制器(Baseboard Management Controller)。一般内置在主板上,支持行业标准的 IPMI 规范。BMC提供的功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。

Python: 是一个有条理的和强大的面向对象的程序设计语言。

ipmitool: 是linux系统下面的BMC管理应用程序。提供IPMI2.0的标准命令访问。

Yafuflash: 是AMI提供linux系统下面的BMC单机更新工具。

Fru:现场可置换单元,主要为一个可擦除存储芯片,里面存放一些板卡信息,如厂商,主板型号等。

如图1至图3所示,一种基于Python实现BMC批量升级的方法, Python程序读取配置文件的信息,根据读取到的信息对参数进行初始化设定,设定完成以后执行对目标的网段扫描,所有目标的网段全部扫描完成以后,Python程序一次性为所有目标机器创建独立的烧录线程,完成BMC批量升级。

如图1至图3所示,管理用户在配置文件的网段配置文件内设置需要升级的服务器所处的网段。

如图1至图3所示,管理用户在配置文件的配置参数文件内设置目标机器的机型和该机型对应的BMC固件名称,版本信息,以及烧录过程的交互控制参数。

如图1至图3所示,本方案主要采用python将ipmitool和yafuflash工具进行整合,通过批量调用实现BMC批量升级,在设定完成以后执行对目标的网段扫描,该扫描过程中主要采用ipmitool工具对fru信息进行检索,跟配置的目标机器的机型进行对比,如果对比一致,则将信息录入到目标机器列表当中,如果不一致,则扫描下一个IP。

如图1至图3所示,所述基于Python实现BMC批量升级的方法包括以下步骤:

S1、Python程序读取配置文件的信息;

S2、根据读取到的信息对参数进行初始化设定;

S3、扫描目标网段;

S4、判断是否为目标机器 ,如果否,则返回步骤S3,如果是,则进入下一步骤;

S5、将扫描到的所有目标机器添加到目标机器列表;

S6、打印目标机器列表;

S7、用户确认是否进行BMC批量升级,如果否,则结束,如果是,则进入下一步骤;

S8、批量创建烧录线程;

S9、等待烧录完成;

S10、等待重启完成;

S11、校验升级版本;

S12、打印升级报告;

S13、结束。

如图1至图3所示,在步骤S11中,通过ipmitool读取固件版本信息进行校对。

如图1所示,管理用户在配置文件里面设置需要扫描的网段,该网段的服务器中存在将要被升级BMC固件的机器。Python程序将会根据设置的网段进行整个网段目标机器探测扫描。其他配置文件单独存放,作为配置参数文件,文件里面放置目标机器的机型和该机型对应的BMC固件名称,版本信息,以及烧录过程的交互控制等参数设置。用户在烧录之前首先需要对这些参数进行正确的设置方能进一步执行烧录程序进行烧录。

整个烧录过程如图2所示,首先Python程序读取配置文件信息,将文件中的网段等参数信息一次性读入进来,然后根据读入的数据对参数进行初始化设定。设定完成以后执行对目标的网段扫描,该扫描过程中主要采用ipmitool工具对fru信息进行检索,跟配置的目标机型进行对比。如果对比一致,则将信息录入到目标设备列表当中。如果不一致,则扫描下一个IP。所有设置网段全部扫描完成以后打印目标设备列表供客户进行烧录前的确认工作。如果客户此时打算放弃烧录操作,输入“no”即可结束。如果确认执行烧录则输入“yes”。程序将一次性为所有目标机器创建独立的烧录线程。整个烧录过程每个设备是独立运行,而所有设备的烧录过程确实并发进行。这样大大提升了烧录的效率,降低了批量升级的时间开销。程序将进行等待整个烧录过程完成,大概10分钟左右,目标机器将再次进行工作状态。此时将执行烧录完成以后的校验工作,校验过程中通过ipmitool读取固件版本信息进行校对,并将校验结果以报告的方式输出。以供系统管理员查看。

整个过程中用户需要做的事情主要有以下几点:

1 、配置网段,配置参数。

2 、执行python程序。

3 、确认是否烧录。

4 、查看烧录结果。

整个过程中基本都是一次性操作,达到批量几百台甚至上千台的批量升级效果。大大提升用户的升级效率,降低操作员个人操作要求。

本发明提供的一种基于Python实现BMC批量升级的方法,用户只需要在配置文件里将需要升级的服务器所处的网段、机型和 固件名称修改对应。运行python程序就可以完成批量升级BMC了。整个过程中,目标机器自主搜索发现,打印搜索到的机器IP列表,供用户确认。用户确认升级,将自动执行批量升级。整个升级过程中并发进行,也就是说完成一台机子的时间可以升级几百台,上千台服务器BMC固件。升级完成以后自动校验BMC固件版本,输出升级报告。

本发明提供的一种基于Python实现BMC批量升级的方法,基于python程序实现的bmc批量升级的创新方案,解决客户在BMC批量升级需求,为客户打造高效升级体验,降低客户维护时间以及成本,降低客户技术人员的维护工作量,简单方便。

本发明提供的一种基于Python实现BMC批量升级的方法,主要优点如下:

1、 目标机自主发现。

2、 交互式升级验证。

3、 高并发处理。

4、 低维护成本。

5、 完整的升级报告。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值