以前、このような記事(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ホストマシンが自動でシャットダウンされるか確認する。
最近のコメント