linux系统

ipmitool实现服务器远程开、关机的具体实现

2018-07-25  本文已影响0人  zhaojian821

2018-07-24

今天在运用ansible实现批量关机时,意外发现了ipmitool工具可以实现远程开机,这简直就是神奇!记得以前在面试的时候,在回答一位面试官的问题时说过“开关机”这个词,对方疑惑的问我,如何实现远程开机?当时我的回答是,我说错了。没想到今天,这个真的可以实现了!真的可以实现远程开机了!下面就详细说一下具体是如何实现的!

最初看到的文章中,是如下描述的:

# ipmitool -H mgmt_ip  -U USER -P PASSWORD power

status       # 查看状态

# ipmitool -H mgmt_ip  -U USER -P

PASSWORD power

on             # 开机

那么我的思路就是先安装ipmitool工具,尝试去实现该功能。

centos 7 安装ipmitool:

yum install OpenIPMI OpenIPMI-devel OpenIPMI-tools OpenIPMI-libs

启动ipmi服务:

service ipmi start

 

这样,就成功的安装好了ipmitool并启动。

执行:ipmitool -H192.168.1.*  -U root -P 123456  power status

报错:

Error: Unable toestablish LAN session

Error: Unable toestablish IPMI v1.5 / RMCP session

Error: Unable toestablish IPMI v2 / RMCP+ session

于是各种查找原因,也是各种尝试,其中我的理解是ip是某台服务器的网卡ip,用户是root,密码是该台服务器的ssh登录密码,但是怎么尝试都是报错。一度都要放弃了!但是这个远程开机的功能,是真的非常吸引我,如今就差临门一脚了,真不愿意放弃,于是在仍然在坚强的查找······

后来在查找中,偶然发现有网友说是与主板有关,这激发了我的想象力,怀疑可能是因为硬件层面的限制,导致的软件方面无法使用,于是按这个思路,查找“dell R720 ipmi”,果然查到了我想要的结果:

R720的配置

着重说明一下版本信息为1.57, 对于这个配置,不同的版本界面及配置均有所区别

重启,F2进去System Setup界面,选择iDRAC Settings:

进入后,先配置Network:

先后在这个页面中配置了:

启动iDrac网卡

设置idrac的ip

启用ipmi

如果服务器启用了idrac卡,在Nic Selection可以看到这个Dedicated的专用网卡,否则只能看到LOM1,LOM2(为Lan Of MotherBoard的缩写)这样的配置。没有这个只是功能缩减了一点,其余的配置依然相同。

以上只是网络截图,具体情况视真实情况而定!

此处的ip,默认是:192.168.0.120

gateway:192.168.0.1

掩码:255.255.255.0

最开始,没有修改这些,但是后来使用时,根本无法ping通,这时才发现,原来是192.168.0网段我是无法访问的,所以此处做了调整:

ip192.168.1.224

网关:192.168.1.1

掩码:255.255.255.0

经过如上配置,就可以ping通了!!!

需要注意的是,该ip是有别于网卡ip的,ipstatic ip,是绑定在IDRAC上的,而不是绑定在em1网卡上的。所以,这IDRAC上的static ipem1网卡上的ip地址不能配置为同一个 ,此处配置成192.168.1.224,完全是为了可以在内网环境能直接访问到;也可以是其他ip,只不过在内网就无法访问到了。另外,ipmi 网口 :可以共用 第一个网口  使用iDRAC的网口,请确保网线正确!为了方便的话,肯定是不再接网线,直接接到第一个网口上。本次就是这么做的,实现了一个网口,同时接通em1网卡(idrac express共享口)和IDRAC两个网卡!!!非常的便于使用!

接着,启用ipmi后可以通过ipmitool来进行远程管理了

配置完网络后,再配置User

Configuration,只是配置一下用户名及密码即可:

按如上配置,就实现了BIOS端的ipmi配置!

验证:

首先,需要明确一点,在253服务器上,执行:ping 192.168.1.224是不通的!因为IDRAC和em1走的是一个网口,无法实现ping!

那么就通过其他机器执行:ping 192.168.1.224,发现是通的!!!这就证明了,IDRAC和em1是可以通过一根网线实现的,并且其他机器可以找到位于253上的IDRAC !!!

通过以下配置,可以看到,IDRAC默认的用户是root,但是并未设置密码,原来默认的密码是:calvin

知道了IDRAC的用户名和密码,就可以在其他机器上通过ipmitool命令查看253服务器的运行状态了:

ipmitool -I lanplus -H 192.168.1.224  -U root -P  calvin chassis powerstatus

 

可以看到,显示电源的状态是on的,表示当前253处于开机运行状态。需要注意的是,ipmitool命令中的:-H 192.168.1.224 是253的IDRAC的static ip,该ip不可换成192.168.1.253。此命令中的ip必须是IDRAC的static ip!!!

 

这样,就可以继续做实验了,将253关机,执行:shutdown -h now。

然后再用ipmitool命令查看253的状态,这时就是off了。

然后再用:ipmitool -I lanplus -H 192.168.1.224 -U  root -P  calvin power on

启动253服务器,等待一会,253服务器就启动成功了,查看253状态也是on了!

至此,就实现了通过ipmi服务和ipmitool工具,远程对服务器开关机的功能了,真的是非常的方便。当以后有计划性停电或维护的时候,就可以批量执行关机命令,待恢复通电后,如果机器没有自启动,就可以通过ipmitool工具,实现远程批量开机操作了!再也不用去挨个服务器怼开电源按钮了!!!该方法特别适用于服务器规模庞大,人工操作繁琐等条件的情况!

dell针对IDRAC还有一个控制台界面,在浏览器中输入IDRAC的static ip地址,就可以访问IDRAC控制台了:

默认登录信息是:root/calvin

该登录信息也可以通过ipmitool命令去更改!

然后会提醒,更改密码,也可以不更改,继续使用默认的密码:

 

可以看到左侧菜单栏中,包含了像CPU,内存,电源,风扇,温度等固件及运行信息,通过这个控制台,可以清洗的看到该台服务器各硬件的情况,便于排查问题!

上一篇下一篇

猜你喜欢

热点阅读