2007年6月28日 星期四

Remote Console/Power Management over IPMI Howto (Part 2)

接下來說明如何進行remote management的設定.

在Part 1中有提到, 有多種方法可以access這個BMC, 在這邊我們以遠端管理最常用到的LAN interface為例子進行設定.

以IBM的機器(e326m, x336, x3650都是這樣)為例, 他的BMC和LAN interface是共用onboard LAN port 1的硬體線路, 但是MAC address不同, 且使用的是OOB(Out Of Band)頻寬(註).

註: 據說明書表示, 幾乎不會影響到系統網卡頻寬.

而在作業系統眼中, BMC的這個LAN interface就像是另外一台電腦一樣, 和系統抓到的網路卡(eth0, e1000g0, em0 whatever...)毫無關係, 所以欲變更LAN interface的ip address只能透過ipmitool(而非ifconfig).

但是在設定LAN interface的ip address之前, 我們必須先決定哪些使用者以及哪些權限才可以透過LAN interface進行系統管理工作, 不然沒考慮清楚一設定下去, 搞不好整個internet都可以沒事把這台機器開開關關 XD

以IBM的機器為例, 一開始有四個使用者, 分別id是1,2,3,4, 除了第一個名稱是無法變更以外, 其他都可以變更名稱. 接下來對於使用者我們可以設定該使用者的權限(註)以及密碼, 以及他可以從哪個interface登入, 以下是一個簡單的shell script, 透過他可以一次設好BMC的ip address與可使用user的user password.

註:權限的部分分為五種, OEM, ADMIN, OPERATOR, USER, CALLBACK, 詳細權限差異各家廠商不大一樣, 要查一下.

#!/bin/sh
IPMI=/usr/bin/ipmitool
# 欲設定的BMC ip address, private ip為佳
IPADDR=1.2.3.4
MASK=255.255.255.0
DEFGW_IP=0.0.0.0
# LANCH代表對BMC來說哪一個channel代表著LAN interface, 通常是channel 1.
LANCH=1
$IPMI lan set $LANCH access on
$IPMI lan set $LANCH ipaddr $IPADDR
$IPMI lan set $LANCH netmask $MASK
$IPMI lan set $LANCH defgw ipaddr $DEFGW_IP
# 這個channel預設的user name
$IPMI lan set $LANCH user root
$IPMI lan set $LANCH arp respond on
# 所有權限層級都必須要有password才能透過LAN channel登入
$IPMI lan set $LANCH auth CALLBACK PASSWORD
$IPMI lan set $LANCH auth USER PASSWORD
$IPMI lan set $LANCH auth OPERATOR PASSWORD
$IPMI lan set $LANCH auth ADMINSTRATOR PASSWORD
$IPMI lan print $LANCH
# 設定user id 2的使用者名稱為root
$IPMI user set name 2 root
# 除了root以外的user都disable掉
$IPMI user disable 1
$IPMI user enable 2
$IPMI user disable 3
$IPMI user disable 4
# 設定root的password
$IPMI user set password 2
# 開放這個channel的access
$IPMI channel getaccess $LANCH

接下來執行完這個shell script後, 我們可以用print來看是否設定完成:

debian:~# ipmitool lan print
Set in Progress : Set In Progress
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : PASSWORD
: User : PASSWORD
: Operator : PASSWORD
: Admin : PASSWORD
: OEM :
IP Address Source : Static Address
IP Address : 1.2.3.4
Subnet Mask : 255.255.255.0
MAC Address : xx:xx:xx:xx:xx:xx
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP : 0.0.0.0
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
Cipher Suite Priv Max : Not Available
debian:~#

如果確認ip address已經上去了的話, 就可以從另外一台機器A測試是否可以遠端下ipmi命令了(註).

註: 當然, 該台機器A也要有裝ipmitool(但是不一定具有BMC, 因他的作用只是透過網路連到其他機器的BMC下指令)以及擁有和BMC相同網段的ip address方能連線.

A:~$ ipmitool -I lan -H 1.2.3.4 -U root sdr
Password:
Ambient Temp | 21 degrees C | ok
Fan 1 Tach | 8475 RPM | ok
Fan 2 Tach | 8625 RPM | ok
Fan 3 Tach | 8775 RPM | ok
[以下省略]

接下來就是方便的部分了, 假設某天很不幸的, 機器因為不明原因死當了, 但是同網段的機器A仍然活著, 此時我們就可以透過ipmitool來把死掉的機器重開機:

A:~$ ipmitool -I lan -H 1.2.3.4 -U root power reset
Password:
A:~$

這樣就不用跑進機房了~ (養樂多)

2 則留言:

Unknown 提到...

Remote console!! 原來是這樣用(~筆記)
不過只有三篇文阿@@
長輩要多寫阿~~~KD

RaTaDune 提到...

放置play中 ! XD