ESXi 4.1のUPS連動 その1

※下記はメモであり、間違っている可能性があります!
指摘に関しては歓迎なのでコメに書いてくださーいm<..>m

ESXiを使う機会が増えた。

さて、ここでやらなきゃいけない事が一つ。

そう。UPSとの連動をしなくてはいけないのだっ!

google先生に聞いてみると、SSHでうんたらかんたらで
スクリプトを・・ry

というのがいくつかあった。

うーん。あまり複雑な事はやりたくない。そしてunsupport
な事は極力避けたい。だれでもわかるシンプルなやり方は
無いのか??

vmwareコミュニティサイトを調べていると、それっぽい
perlスクリプトがあった。

http://communities.vmware.com/docs/DOC-11623

ちょっと複雑かな・・?(笑

と思ったが、この方法を試した。


0、ESXiにログインし、バーチャルマシン自動起動・停止の設定を行う。ここはググッテ。
1、VMA4.0のダウンロード
2、ESXi上にVMA4.0をOVFデプロイ
3、VMA4.0上に、shutdownHostViaSOAPAPICall.plを配置
4、shutdownHostViaSOAPAPICall.plの編集

こんなかにユーザ名・パスワードを埋め込む場所がある。
ここを変更

修正箇所

my $host_username = 'hoge';
my $host_password = 'hoge';

5、chmod +x shutdownHostViaSOAPAPICall.pl
6、hostlist.txtの作成
DNS正引き可能ホスト又は、IPアドレスのリストを記載する。ここに記載されたhost(ESXi本体)はshutdown対象となる。

<注意1>

VMAが動作しているhostをshutdownする際は、リストの最後に追加しなければいけないと思う。
VMA動作hostをshutdowsする必要がないなら、listに含める必要な無い。

<注意2>

hostlist.txtに複数ホストを定義する場合、それらのhostは
共通のユーザ名、パスワードを持ち要らなければ失敗する。
スクリプトを弄れば、共通でなくても出来るが今回は
弄らない。

hostlist.txtの記述例***
vi /home/vi-admin/hostlist.txt

esxi.example.com
hoge.example.com

7、apcupsd-3.14.5-1.el5.x86_64.rpmのダウンロード
8、sudo rpm -ivh apcupsd-3.14.5-1.el5.x86_64.rpm
9、sudo vi /etc/apcupsd/apcupsd.confの編集
※ここは、環境にあわせて設定する。
10、sudo vi /etc/apcupsd/apccontrol

修正前

doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
;;

修正後

doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
/home/vi-admin/shutdownHostViaSOAPAPICall.pl /home/vi-admin/hostlist.txt
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
;;

11、apcupsdの起動

sudo /etc/init.d/apcupsd start

エラーが出力されないことを確認し、プロセスを確認。

12、UPSの商用電源をOFFしてみる。

ぴー。ぴー。ぴー。鳴り響く音。後は設定した時間待つ。

VMAのコンソールにブロキャスメッセージが出力される。

バッテリー駆動になったよ!と。

設定した時間になると、apcupsdがシャットダウン信号を
出し、apccontrolが呼ばれる。

Successfullly・・・

というメッセージがコンソールに出力され、ホストがシャットダウンされた。

バーチャルマシン自動起動・停止をしっかり設定していれば、ホストがシャットダウンした際にゲストは、PowerOff/Suspend/Shutdownの行動を取るはず。って事でこんなんでいいのかな?ちょっち乱暴?

次回は違う方法でチャレンジします。