以前、このような記事(ESXi5.1 APC Smart UPS 連携 メモ)を書いたが、SSHを使わずともUPSと連携できるようなので改めてまとめておく。
無料版ESXi5.1のホスト方ではUSP連携に対応していないためゲストを利用してUPSと連携する。
※ 方法は色々あるようで”VMware vSphere Management Assistant”と呼ばれる物を導入する方法もあるようだが今回もゲストにCentOS5を使用して実現する。
使用するゲストにシリアルポートを認識させる。
ゲストにApcupsdをインストールする。
インストールの方法は色々と紹介されているので他サイトを参照。
シリアルポートのディバイスファイルの設定が正しいか確認する。
# cat /etc/apcupsd/apcupsd.conf | grep “DEVICE”
# You must also specify a DEVICE, sometimes referred to as a port.
# For USB UPSes, please leave the DEVICE directive blank. For
# UPSTYPE DEVICE Description
# usb <BLANK> Most new UPSes are USB. A blank DEVICE
DEVICE /dev/ttyS0
Apcupsdを起動する。
# service apcupsd start
ゲスト側でUPSが認識されているか確認するために下記のコマンドを実行する。
# apcaccess
APC : 001,051,1250
DATE : 2013-12-21 19:16:06 +0900
HOSTNAME : orsx.net
VERSION : 3.14.10 (13 September 2011) redhat
UPSNAME : UPS_IDEN
CABLE : Custom Cable Smart
DRIVER : APC Smart UPS (any)
UPSMODE : Stand Alone
STARTTIME: 2013-12-21 18:45:14 +0900
MODEL : SMART-UPS 1000
STATUS : ONLINE
LINEV : 100.7 Volts
LOADPCT : 20.8 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 83.0 Minutes
MBATTCHG : 30 Percent
MINTIMEL : 10 Minutes
MAXTIME : 1200 Seconds
MAXLINEV : 101.4 Volts
MINLINEV : 098.8 Volts
OUTPUTV : 100.1 Volts
SENSE : High
DWAKE : 000 Seconds
DSHUTD : 180 Seconds
DLOWBATT : 02 Minutes
LOTRANS : 090.0 Volts
HITRANS : 110.0 Volts
RETPCT : 000.0 Percent
ITEMP : 32.4 C Internal
ALARMDEL : 5 seconds
BATTV : 28.3 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 336
STATFLAG : 0x07000008 Status Flag
DIPSW : 0x00 Dip Switch
REG1 : 0x00 Register 1
REG2 : 0x00 Register 2
REG3 : 0x00 Register 3
MANDATE : 02/04/99
SERIALNO : WS9906012897
BATTDATE : 02/04/99
NOMOUTV : 100 Volts
NOMBATTV : 24.0 Volts
EXTBATTS : 0
FIRMWARE : 60.12S.A
END APC : 2013-12-21 19:16:26 +0900
UPS連携に関係する各種スクリプトを設置するディレクトリを作成する
# mkdir /opt/esxi_shutdown/
# chmod 700 /opt/esxi_shutdown/
# cd /opt/esxi_shutdown/
ESXi5.1ホストマシンにSOAPでシャットダウン命令を送るスクリプトをダウンロードする
※ 長いため改行を入れている
# wget http://communities.vmware.com/servlet/JiveServlet/\
download/11623-3-32693/shutdownHostViaSOAPAPICall.pl
下記のモジュールを使うため事前にcpanなどでインストールしておく
Term::ANSIColor
LWP::UserAgent
HTTP::Request
HTTP::Cookies
Data::Dumper
ユーザ名やパスワードに関する設定を行う
さらに、そのままではSSLの認証でエラーや警告が出るためこれらの設定の直下に環境変数を書き換える処理を加える
# vi shutdownHostViaSOAPAPICall.pl
# Please fill out the
# username and password
# for your ESX(i) host
my $host_username = 'fillmein';
my $host_password = 'fillmein';
# Override HTTPS setting in LWP
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
シャットダウンするESXi5.1ホストマシンの一覧を管理するファイルを作成する
# echo “esxi_host.com” > hostlist
# chmod 600 hostlist
ESXi5.1ホストマシンのシャットダウンを統括するシェルスクリプトを作成する。
# vi esxi_shutdown.sh
#!/bin/sh
cd /opt/esxi_shutdown/
perl ./shutdownHostViaSOAPAPICall.pl ./hostlist
実行権を与える。
# chmod 700 esxi_shutdown.sh
実際に実行してESXi5.1ホストマシンがゲストからシャットダウンできるか確認する。
# /opt/esxi_shutdown/esxi_shutdown.sh
Apcupsdがシャットダウン時に実行するコマンドを書き換える
# vi /etc/apcupsd/apccontrol
#SHUTDOWN=/sbin/shutdown
SHUTDOWN=/opt/esxi_shutdown/esxi_shutdown.sh
Apcupsdを再起動する。
# service apcupsd restart
最後にUPSの電源を引きぬいてESXi5.1ホストマシンが自動でシャットダウンされるか確認する。
参考サイト
VMware ESXi 5.0 + vMA 5.0で電源管理 (1)
最近のコメント