本发明涉及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、 完整的升级报告。

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

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

  1. python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程

    本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...

  2. python小波分析法检测火焰_一种基于小波分析的网络流量异常检测方法

    一种基于小波分析的网络流量异常检测方法 杜臻 ; 马立鹏 ; 孙国梓 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2019(046)008 [摘要] 对大量网络流量数据进行高质 ...

  3. python登录系统账号检测_一种基于python的惠普打印机默认用户名密码检测方法与流程...

    本发明涉及打印机检测技术领域,特别是一种基于python的惠普打印机默认用户名密码检测方法. 背景技术: 网络打印机是当前各大中小型企业正常办公比不可少的办公网络设备,但对于大中型企业而言,不同部门或 ...

  4. python爬取电子病历_一种基于中文电子病历的实体识别方法技术

    本发明专利技术提供了一种基于中文电子病历的实体识别方法,涉及医疗实体识别技术领域.针对目前国内缺少公开中文电子病历标注语料库的缺陷,本发明专利技术通过构建整理医学词典,提出了一种半自动语料库标注方法, ...

  5. 企业微信推送消息延迟_一种基于企业微信的消息推送方法与流程

    本发明涉及消息推送技术领域,特别涉及一种基于企业微信的消息推送方法. 背景技术: 随着微信公众号的普及,微信企业号也越来越受到人们的关注.而腾讯公司在微信企业号的基础上又进行了进一步的升级,提供了类似 ...

  6. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  7. 电容屏物体识别_一种基于触摸屏触摸点的物体识别方法与流程

    本发明涉及触摸屏触摸点物体识别技术领域,具体为一种基于触摸屏触摸点的物体识别方法. 背景技术: 多触点触摸屏支持多个触点同时输入,通过触摸屏的点的特征,进行物体识别是一个成熟的技术,以下简称物体识别为 ...

  8. 机器人测钢卷直径_一种基于关节机器人的冷轧钢卷卷芯焊接方法与流程

    本发明涉及冶金技术领域,特别涉及一种基于关节机器人的冷轧钢卷卷芯焊接方法. 背景技术: 在冷轧罩式退火工序,钢卷采用立式吊具吊运,为防止钢卷卷芯松动导致卷芯钢带损坏和抽芯故障,必须将钢卷卷芯内圈焊接固 ...

  9. 反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程

    本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法. 背景技术: 随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高.提供实时系 ...

最新文章

  1. docker学习实践之路[第一站]环境安装
  2. linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
  3. Bzoj2656 [Zjoi2012]数列(sequence)
  4. celery-03-操作a-发布人一方
  5. 扒一扒面向对象编程的另一面
  6. Node.js下载安装及各种npm、nvm、nrm配置(保姆式教程---提供全套安装包)---node.js的安装与配置(1)
  7. 华科计算机系研究生遗书,看完华中科大研究生遗书《狗血的研究生生涯》,泪目了!有话要说...
  8. 百度地图Map属性和方法
  9. MenuItem 对象
  10. Linux学习——Makefile
  11. C++:以空格分隔的字符串的输入输出
  12. Mysql常见的日期查询语句
  13. Java贪吃蛇游戏开发
  14. 工控领域国际品牌的市场兼并
  15. 1949-2017闰年 c语言,1949年到2017年里有多少个闰年,多少个平年
  16. 排队器拦截_如何绕过浏览器的弹窗拦截机制
  17. redis.conf文件下载与配置
  18. 在IPCAM上实现RTSP协议直播-live555
  19. Java 获取对象占用内存大小
  20. Java选择题(八)

热门文章

  1. nvidia-smi 报错
  2. 老子《道德经》第五十九章
  3. 大一计算机基础实验报告排版论文,大学计算机基础实验报告-20210420001400.docx-原创力文档...
  4. MyBatis Generator(MBG) 自动模板使用配置
  5. Windows 命令行cmd.exe简单介绍
  6. MIUI和Android的关系,【最新系统】小米:MIUI和Android没有对应关系 - 爱应用
  7. 【bzoj2073】[POI2004]PRZ
  8. 服务器管理器远程管理如何打开,如何实现服务器远程管理图文详解
  9. MySQL是怎样运行的——第十七章
  10. 虚拟宠物以AR形式来到你身边