简介:BMC,执行伺服器远端管理控制器,英文全称为Baseboard Management Controller. 为基板管理控制器。它可以在机器未开机的状态下,对机器进行固件升级、查看机器设备、等一些操作。
BMC的主要功能:
1、为远程系统管理提供IPMI v1.5 LAN消息,包括系统状态监视;重启、重新供电、断电等底板控制;FRU资讯,少量SEL资讯用入口;BIOS保护和选择。
2、为本地系统可管理性提供IPMI v1.5消息。
3、对LAN消息采用MD5签名以保证远程连接的安全性。MD5签名加上私有密码能够很好地保护系统免受外部的侵袭。
4、BIOS或OS可以将‘推进’警告作为SNMP Traps,并通过LAN报告严重事件。
5、自发地进行系统健康监视并对严重事件产生纠正动作。
6、LAN警告。
历史攻略:
开机参数:
{"ResetType": "ForceOn"}
关机:
{"ResetType": "ForceOff"}
优雅重启:
{"ResetType": "GracefulRestart"}
强制重启:相当于reboot,拔掉电源等。
{"ResetType": "ForceRestart"}
案例源码:
# -*- coding: utf-8 -*-
# time: 2022/8/14 17:22
# file: bmc.py
# 公众号: 玩转测试开发
import requests
class BMC(object):
def __init__(self, host, username, password):
self.host = host
self.username = username
self.password = password
self.headers = {
"content-type": "application/json"
}
self.session = requests.session()
# 认证
self.session.auth(self.username, self.password)
def start_up(self, data):
# 开机
url = f'https://{self.host}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset'
response = self.session.post(url=url, verify=False, json=data, headers=self.headers)
print(f"返回信息:{response}")
def shut_down(self, data):
# 关机
url = f'https://{self.host}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset'
response = self.session.post(url=url, verify=False, json=data, headers=self.headers)
print(f"返回信息:{response}")
def graceful_restart(self, data):
# 优雅重启
url = f'https://{self.host}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset'
response = self.session.post(url=url, verify=False, json=data, headers=self.headers)
print(f"返回信息:{response}")
def force_restart(self, data):
# 强制重启:相当于reboot,拔掉电源
url = f'https://{self.host}/redfish/v1/Systems/1/Actions/ComputerSystem.Reset'
response = self.session.post(url=url, verify=False, json=data, headers=self.headers)
print(f"返回信息:{response}")
if __name__ == '__main__':
host = "111.112.113.114" # BMC地址
username = "admin"
password = "1234567890"
bmc = BMC(host, username, password)
bmc.start_up({"ResetType": "ForceOn"})
bmc.shut_down({"ResetType": "ForceOff"})
bmc.graceful_restart({"ResetType": "GracefulRestart"})
bmc.force_restart({"ResetType": "ForceRestart"})
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!