2007/10/15

OpenIPMI・その3・管理端末編

管理端末側の準備は簡単だ。パッケージOpenIPMI-toolsをインストールすればよい。
# yum install -y OpenIPMI-tools

主に使用するコマンドは、ipmitool(1)。概要で実行例を示したが、これとマニュアルを見れば、大体の操作はできるだろう。
実行例では、パスワードの指定にコマンドラインオプション-P "パスワード"を使用したが、代わりに、-a-Eおよび-f ファイル名を指定することができ、それぞれ、プロンプトを出して入力、環境変数IPMI_PASSWORDで指定、および、ファイルで指定、となる。安全面を考えると、-a-f ファイル名がいいだろう(環境変数や、コマンドライン引数は、ps auxwweで覗き見可能なので)

最後に、再起動の実行例を示す。まずは、管理端末側。
$ export IPMI_PASSWORD=IPMIパスワード
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -E -L operator chassis power cycle
Chassis Power Control: Cycle
$
なお、コマンドラインオプション-L operatorは、権限レベルの指定。
サーバ側では、コンソールに
Broadcast message from root (Mon Oct 15 19:47:03 2007):

The system is going down for system halt NOW!
の様なメッセージが表示され、再起動が実行される。ログ(/var/log/messages)には、以下の様な行が確認できるはずだ。
Oct 15 19:47:02 サーバ名 /usr/bin/ipmilan: Mon Oct 15 19:47:02 2007: Activate session: Session opened for user 0x2, max priv 3
Oct 15 19:47:02 サーバ名 /usr/bin/ipmilan: Mon Oct 15 19:47:02 2007: Session closed: Closed due to request
Oct 15 19:47:03 サーバ名 shutdown[14921]: shutting down for system halt


OpenIPMI・その1・概要
OpenIPMI・その2・サーバ編
OpenIPMI・その3・管理端末編

OpenIPMI・その2・サーバ編

OpenIPMIで管理されるサーバ側では、
  1. パッケージの導入
  2. IPMIモジュールの設定
  3. デーモンipmilanの設定
  4. デーモンipmilanの起動
という作業が必要になる。実は、ipmilan(8)を自動起動するスクリプトはパッケージOpenIPMIには入っていないので、自分で準備する必要があるが、ここでは解説しない。

1. パッケージの導入
いつもの如く、yumで行う。
# yum install -y OpenIPMI
同時に、OpenIPMI-libsも導入される。

2. IPMIモジュールの設定
OpenIPMIを導入すると、サービスipmiが追加されるので、これをOS起動時に起動されるよう設定する。
# chkconfig ipmi on
このサービスの設定ファイルは、/etc/sysconfig/ipmi。特に変更しなくてもサービスは正常に起動するが、IPMIによる機器再起動を行う場合には、この中のIPMI_POWEROFFおよびIPMI_POWERCYCLEyesに変更する。
#IPMI_POWEROFF=no
IPMI_POWEROFF=yes
<<略>>
#IPMI_POWERCYCLE=no
IPMI_POWERCYCLE=yes
機器を再起動するか、service ipmi startでサービスを起動する。

3.デーモンipmilanの設定
リモートからIPMIでサーバを管理するためには、デーモンipmilan(8)を起動する必要がある。このデーモンの設定ファイルは、/etc/ipmi_lan.conf。以下の様に設定する。
addr サーバのIPアドレス
priv_limit admin
allowed_auths_callback md5
allowed_auths_user md5
allowed_auths_operator md5
allowed_auths_admin md5
user 2 true "IPMIユーザ名" "IPMIパスワード" admin 1 md5
コマンドaddrに続くのは、サーバのIPアドレス。サーバにネットワークアドレスが一つしかないのであれば、addrコマンドは不要。複数ある場合で接続を待ち受けるIPアドレスを限定したい場合に指定する。ローカルからしか接続を許さないのであれば、127.0.0.1を指定するのがいいかもしれない(が、意味はない)
コマンドpriv_limitは、接続した際の権限レベルの上限を指定する。callbackuseroperatorおよびadminが指定できる。必要に応じて設定する(とか言いながら、実はまだよく解ってない)
つづく、allowed_auths_*は、それぞれの権限レベルで許される認証形式で、nonestraightmd2およびmd5が指定できるが、安全面を考慮すると、md5を指定するべきだ。
次の、userコマンドは、ユーザの定義。続く項目の詳細は以下の通り。
  1. ユーザ番号: 1から63までが指定できるが、1は匿名接続のために使われる。通常のユーザ名/パスワード認証を行うのであれば、2から63の内のいずれかを使う。
  2. ユーザが有効かどうかを示す真偽値。
  3. ユーザ名: 二重引用符で囲む。
  4. パスワード: 二重引用符で囲む。
  5. 最大権限レベル: ユーザに許可する権限の上限。
  6. 最大セッション数: このユーザに許可する最大セッション数。
  7. 認証形式: このユーザに許可する認証形式。省略すると、このユーザはログイン不能になる。事実上、md5を指定するしかないだろう。
他のコマンドについては、ipmilan(8)のマニュアルを参照する。
このファイルは、他のユーザに読めないように、パーミッションを変更しておく。
# chmod go-rwx /etc/ipmi_lan.conf


4.デーモンipmilanの起動
デーモンの起動は、次のコマンドで行う。
# /usr/bin/ipmilan
無事に起動できれば、/var/log/messagesに次のような行が記録される。
Oct 15 18:40:19 ホスト名 /usr/bin/ipmilan: Mon Oct 15 18:40:19 2007: /usr/bin/ipmilan startup


OpenIPMI・その1・概要
OpenIPMI・その2・サーバ編
OpenIPMI・その3・管理端末編

Adsense: つまんない話

つまんない話ですが、と断っておきます。

私、このブログの他にもブログをやってるんですが、遊びでアフィリエイト広告をつけてみました(右とか下とか)。Amazonの広告は、すぐに表示できたんですが、なぜかGoogle Adsenseはうまく行かなかった。

で、オチですが、Adblockで禁止してたんですな。普段はFirefoxを使ってるんですが、たまたまIE ViewでIEに表示させてみると表示できたんで、なんでかな、と思ったら…とほほ。

それにしても、Amazonの広告には、ときどきこことは関係ないとしか思えないものが表示されるのは何とかして欲しい(笑)。

OpenIPMI・その1・概要

IPMIは、Intelligent Platform Management Interfaceの略で、簡単に言うと、ベンダ・OSに拠らず、リモートから(ローカルからも)サーバを管理するための仕組みだ。これを利用すると、シャーシ内の温度の監視や機器の再起動を行うことができる(少なくとも、ハードウェアがIPMIに対応している必要はあるが)。以下に実行例を示す。
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P "IPMIパスワード" sdr type Temperature
ESM Frt I/O Temp | 31h | ok | 12.0 | 21 degrees C
ESM CPU 1 Temp | 32h | ns | 3.1 | Disabled
ESM CPU 2 Temp | 33h | ns | 3.2 | Disabled
ESM Riser Temp | 34h | ok | 16.0 | 28 degrees C
ESM CPU 1 Temp | 35h | ok | 3.1 | 32 degrees C
ESM CPU 2 Temp | 36h | ns | 3.2 | Disabled
BP Bottom Temp | 03h | ns | 15.1 | Disabled
BP Top Temp | 02h | ns | 15.1 | Disabled
$

この仕組みは、前に紹介したDRACと似ているといえば似ているが、TELNETではないUDP上の独自プロトコルを使う点や、ベンダに依存しない点が異なる。DRACもクラスタ(RHCS)のフェンス手段として使うことができたが、当然IPMIもフェンス手段として使うことができる。

CentOS(や、RHELおよびFedora)では、OpenIPMIというパッケージをサーバに導入すれば、そのサーバをIPMIによって管理することが可能になる。管理端末側には、OpenIPMI-toolsというパッケージを導入する。以下、それぞれについて解説する。

OpenIPMI・その1・概要
OpenIPMI・その2・サーバ編
OpenIPMI・その3・管理端末編

2007/10/13

init: open(/dev/pts/0): No such file or directory

Linux起動中に/var/log/messagesに以下のようなログが記録されることがある。
Oct 13 21:55:06 ホスト名 init: open(/dev/pts/0): No such file or directory
これは放っておいても実害はないが、消したければ、以下をrootで実行する。
# change_console -r
これは、initとrhgbとの間で/dev/pts/0が取り合いになっているのが原因(参考)。コマンドを実行することで、initに/dev/consoleを使うように指示する。

もちろん、/boot/grub/grub.confを修正し、kernel起動時にrhgbを使わないよう指定しても良い。