Saturday, December 15, 2012

ipmitool のエスケープキャラクタ変更

多量のサーバを取り扱う場合、いちいちマシン室に走ってディスプレイをつないで…なんてやっていられないので、IPMIはとても便利に使える機能だ。
電源On/Off だけでなく、BIOSやOSコンソールも使えるほか、各種の情報取得もできる。

実際の操作には、自分は ipmitool を利用している。

ところが、特にSOL (Serial-Over-LAN)でコンソールに接続して作業する際に困ったことがあった。
各所のDC等を利用していると、多段sshで乗り込まざるを得ないことも多いわけだが、
コンソールセッションの終了のキーシーケンスが、デフォルトでは

  ~.    (チルダを押した後、ピリオドを押す)

で、これがsshとかぶってしまっているため、コンソールセッションを終了しようと
すると、sshのセッションまで道連れに終了してしまう。

この場合の回避策として、ssh か ipmitool のいずれかのエスケープキャラクタを変更してしまえばよい。

参考までに、man ssh より。
|  -e escape_char
|         Sets the escape character for sessions with a pty (default:
|        ‘~’).  The escape character is only recognized at the beginning
|         of a line.  The escape character followed by a dot (‘.’) closes
|         the connection; followed by control-Z suspends the connection;
|         and followed by itself sends the escape character once.  Setting
|         the character to “none” disables any escapes and makes the
|         session fully transparent.

man ipmitool より。
| -e sol_escape_char
|          Use  supplied  character  for SOL session escape character.  The
|          default is to use ~ but this can conflict with ssh sessions.

ということで、見事に default が '~' (チルダ)で被っているが、これはいずれかを -e で
変更すればよい。
ssh側は各種の理由からデフォルトで使いたいので、ipmitool 側で ~ (チルダ)から & (アンパーサンド)に変更するとして、こんな感じ。

 $ ipmitool -U admin -P PASSWORD -I lanplus -h IP_ADDRESS -e \& sol activate

余談だが、-e ¥&の¥はもちろん、shell 上におけるエスケープ。

No comments:

Post a Comment