CN110134417A - 一种基于Python实现BMC批量升级的方法 - Google Patents

一种基于Python实现BMC批量升级的方法 Download PDF

Info

Publication number
CN110134417A
CN110134417A CN201910305060.7A CN201910305060A CN110134417A CN 110134417 A CN110134417 A CN 110134417A CN 201910305060 A CN201910305060 A CN 201910305060A CN 110134417 A CN110134417 A CN 110134417A
Authority
CN
China
Prior art keywords
bmc
python
target
batch
batch upgrade
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.)
Withdrawn
Application number
CN201910305060.7A
Other languages
English (en)
Inventor
方小明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Guo Xinheng Space Science And Technology Ltd
Original Assignee
Shenzhen Guo Xinheng Space Science And Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Guo Xinheng Space Science And Technology Ltd filed Critical Shenzhen Guo Xinheng Space Science And Technology Ltd
Priority to CN201910305060.7A priority Critical patent/CN110134417A/zh
Publication of CN110134417A publication Critical patent/CN110134417A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于Python实现BMC批量升级的方法,Python程序读取配置文件的信息,根据读取到的信息对参数进行初始化设定,设定完成以后执行对目标的网段扫描,所有目标的网段全部扫描完成以后,Python程序一次性为所有目标机器创建独立的烧录线程,完成BMC批量升级。本发明的有益效果是:实现了BMC批量升级,能够在批量范围内升级BMC固件,满足客户快速的升级要求,高效升级,降低客户维护时间以及成本,降低客户技术人员的维护工作量,简单方便。

Description

一种基于Python实现BMC批量升级的方法
技术领域
本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法。
背景技术
随着现代服务器主板技术的发展,主板设计形态复杂多变。无论是设计成本还是后期使用过程中的维护成本都很高。如何最大限度保障硬件的安全运行,维护的及时高效,服务器行业经过多年的积累逐渐形成了IPMI规范。目前该规范已经发布到2.0版本,硬件提供商以aspeed的 ast2400 和ast2500芯片使用率较高,软件提供商以AMI提供的BMC固件版本在工业领域使用率较高。行业的成熟度的提升,应用的积累推广,使得现代服务器主板基本标配BMC方案。大量的BMC方案的应用,对BMC的升级提出了更高效的要求。
BMC是一个软件系统,主要负责初始化主板管理控制器、远程监控管理主板、固件升级等功能。服务器主板上电后,在关机状态下,BMC软件就开始运行,首先运行Bootloader, 初始化管理控制器硬件设备、建立内存空间的映射图,然后调用操作系统内核,进入系统,运行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、 完整的升级报告。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (6)

1.一种基于Python实现BMC批量升级的方法,其特征在于:Python程序读取配置文件的信息,根据读取到的信息对参数进行初始化设定,设定完成以后执行对目标的网段扫描,所有目标的网段全部扫描完成以后,Python程序一次性为所有目标机器创建独立的烧录线程,完成BMC批量升级。
2.根据权利要求1所述的基于Python实现BMC批量升级的方法,其特征在于:管理用户在配置文件的网段配置文件内设置需要升级的服务器所处的网段。
3.根据权利要求2所述的基于Python实现BMC批量升级的方法,其特征在于:管理用户在配置文件的配置参数文件内设置目标机器的机型和该机型对应的BMC固件名称,版本信息,以及烧录过程的交互控制参数。
4.根据权利要求3所述的基于Python实现BMC批量升级的方法,其特征在于:设定完成以后执行对目标的网段扫描,该扫描过程中主要采用ipmitool工具对fru信息进行检索,跟配置的目标机器的机型进行对比,如果对比一致,则将信息录入到目标机器列表当中,如果不一致,则扫描下一个IP。
5.根据权利要求1所述的基于Python实现BMC批量升级的方法,其特征在于,所述基于Python实现BMC批量升级的方法包括以下步骤:
S1、Python程序读取配置文件的信息;
S2、根据读取到的信息对参数进行初始化设定;
S3、扫描目标网段;
S4、判断是否为目标机器 ,如果否,则返回步骤S3,如果是,则进入下一步骤;
S5、将扫描到的所有目标机器添加到目标机器列表;
S6、打印目标机器列表;
S7、用户确认是否进行BMC批量升级,如果否,则结束,如果是,则进入下一步骤;
S8、批量创建烧录线程;
S9、等待烧录完成;
S10、等待重启完成;
S11、校验升级版本;
S12、打印升级报告;
S13、结束。
6.根据权利要求5所述的基于Python实现BMC批量升级的方法,其特征在于:在步骤S11中,通过ipmitool读取固件版本信息进行校对。
CN201910305060.7A 2019-04-16 2019-04-16 一种基于Python实现BMC批量升级的方法 Withdrawn CN110134417A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910305060.7A CN110134417A (zh) 2019-04-16 2019-04-16 一种基于Python实现BMC批量升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910305060.7A CN110134417A (zh) 2019-04-16 2019-04-16 一种基于Python实现BMC批量升级的方法

Publications (1)

Publication Number Publication Date
CN110134417A true CN110134417A (zh) 2019-08-16

Family

ID=67570070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910305060.7A Withdrawn CN110134417A (zh) 2019-04-16 2019-04-16 一种基于Python实现BMC批量升级的方法

Country Status (1)

Country Link
CN (1) CN110134417A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124463A (zh) * 2019-12-21 2020-05-08 苏州浪潮智能科技有限公司 一种bmc的批量升级方法、系统及设备
CN111221510A (zh) * 2019-12-26 2020-06-02 曙光信息产业(北京)有限公司 一种基于linux平台的批量执行框架的实现方法及装置
CN112492061A (zh) * 2020-11-20 2021-03-12 浪潮电子信息产业股份有限公司 Bmc的ip地址修改方法、装置、设备及可读存储介质
CN113504932A (zh) * 2021-08-06 2021-10-15 恒为科技(上海)股份有限公司 一种固件数据更新方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124463A (zh) * 2019-12-21 2020-05-08 苏州浪潮智能科技有限公司 一种bmc的批量升级方法、系统及设备
CN111124463B (zh) * 2019-12-21 2023-08-08 苏州浪潮智能科技有限公司 一种bmc的批量升级方法、系统及设备
CN111221510A (zh) * 2019-12-26 2020-06-02 曙光信息产业(北京)有限公司 一种基于linux平台的批量执行框架的实现方法及装置
CN112492061A (zh) * 2020-11-20 2021-03-12 浪潮电子信息产业股份有限公司 Bmc的ip地址修改方法、装置、设备及可读存储介质
CN113504932A (zh) * 2021-08-06 2021-10-15 恒为科技(上海)股份有限公司 一种固件数据更新方法和装置
CN113504932B (zh) * 2021-08-06 2022-05-20 恒为科技(上海)股份有限公司 一种固件数据更新方法和装置

Similar Documents

Publication Publication Date Title
CN110134417A (zh) 一种基于Python实现BMC批量升级的方法
US11201805B2 (en) Infrastructure management system for hardware failure
CN110879712B (zh) 一种云数据中心物理主机装机方法及相关装置
US9965288B2 (en) Preconfiguring hardware and speeding up server discovery prior to bios boot
US9766876B2 (en) Methods of updating software components, computer systems and memory apparatus
US8171116B2 (en) Configuring processing entities according to their roles in a data processing system with a distributed architecture
US20100162227A1 (en) Automation of Mainframe Software Deployment
US9037843B2 (en) Managing a target computing device
CN101411123A (zh) 用于分布式数据处理系统端点上的集中式系统管理的方法、系统和计算机程序
CN105260208A (zh) 一种服务器自动批量刷新raid卡驱动的方法
CN104754032A (zh) 一种部署OpenStack的方法及装置
US11586489B2 (en) Automated disaster recovery test verification
US20090108067A1 (en) Methods and Apparatus for Managing Bar Code Scanner Configuration and Data
CN105183520A (zh) 计算机软件远程自动化装调方法及系统
CN103927260A (zh) 一种电信设备测试方法及系统
CN109144701A (zh) 一种任务流管理方法、装置、设备及系统
US11640290B2 (en) Pushing a firmware update patch to a computing device via an out-of-band path
US9596149B2 (en) Server information handling system NFC ticket management and fault storage
US9870234B2 (en) Automatic identification of returned merchandise in a data center
US9207928B2 (en) Computer-readable medium, apparatus, and methods of automatic capability installation
CN113656088B (zh) 互联网数据中心服务器自助管理方法、装置和存储介质
US7277810B2 (en) Method and apparatus for automating calibration of test instruments
CN114050971A (zh) 服务器配置方法及装置、系统、电子设备、存储介质
CN113657702A (zh) 一种互联网数据中心自动运维方法、装置和可读存储介质
US9223946B1 (en) Specification and configuration of management intent

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20190816