apcupsdによる停電対策 仮想マシン停止付

ESXiホストで下記の場所にスクリプト作成
vi /vmfs/volumes/datastore1/ups_shutdown.sh

スクリプトの内容 ------------------------------ start
#!/bin/bash

VMID=$(/usr/bin/vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}')
for i in $VMID
do
STATE=$(/usr/bin/vim-cmd vmsvc/power.getstate $i | tail -1 | awk '{print $2}')
if [ $STATE == on ]
then
/usr/bin/vim-cmd vmsvc/power.shutdown $i
fi
done
sleep 60
/sbin/shutdown.sh
/sbin/poweroff

スクリプトの内容 ------------------------------ end

chmod 700 /vmfs/volumes/datastore1/ups_shutdown.sh

apcupsd 接続マシンからsshログインパスワードなし接続可能に設定する。
(公開鍵をESXiホストに保存して完全にパスワードなし接続可能にする。)

apcupsd接続マシンの/etc/apcupsd/apccontrol に
doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
ssh 172.16.11.6 "sh /vmfs/volumes/datastore1/ups_shutdown.sh" ← この部分を挿入 172.16.11.6は、ESXiホストのIPアドレス
${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"vmware 「構成」 → 「ソフトウェア」 → 「仮想マシン起動/シャットダウン」で
シャットダウンアクションを「パワーオフ」から「ゲストシャットダウン」に変更しておく。

この記事へのコメント