esxi连接UPS在断电后自动关机已经不是啥新鲜话题了,有好多的解决方案。我也放一个我自己的方案。
在我采用的方案中借鉴了很多其他人的方案,不过具体的出处已经记不清楚了。
简单的说明下我的方案 安装PowerChute后 在出现电源故障时windows 事件查看器中会有日志记录 通过任务计划监控指定的日志 在出现电源中断的时执行关机操作
需要用到的软件
PowerChute Personal Edition(UPS管理软件 APC官网有 买UPS的光盘里也有)
plink.exe(百度一下很多)
powerdown-esxi5.sh(忘了哪个大神写的了 很好用 虽然是写给esxi 5的 在esxi 6.0上一样可以用 代码在最后)
APC BK650-CH是面向家庭用户的产品对win server兼容不好所以用win7装一个VM 配置不要求很高 能运行win7就行
win7比Linux的好处是操作更简单 更直观 之前用过apcupsd 关机脚本执行起来太费劲
将USB连接主机后连接到VM
建立一个虚拟交换机不添加上行端口 添加vmk 将VM的网卡加到这个虚拟交换机中 这样做是为了保证在外部断电 交换机断电的情况下可以从内部网络通信

安装 PowerChute Personal Edition 有了这个软件可以方便的查看UPS的状态以及电源故障记录
安装PowerChute后 在出现电源故障和电源恢复时 事件查看器 中会有日志记录
添加一条任务计划 当APC UPS Service 发出事件ID 为 174时 延迟3分钟开始执行关机操作
当APC UPS Service 发出事件ID 为 61455时执行电源恢复的脚本
电源恢复脚本
很简单就是停止正在运行的电源故障任务计划
电源故障关机脚本
注意第二行 断电3分钟后已经开始关机流程 为了保证关机流程正常执行 在开始关机操作前先将监控电源恢复的任务计划禁用
4到8行是将局域网中其他win VM关机 需要在凭据管理器中提前添加目标主机的管理员用户名和密码
使用plink 第一次登录esxi需要接受来自esxi的SSH指纹 这里会有一个交互 脚本直接执行过不去 最好是先用plink 登录一次esxi保存 SSH指纹 然后在启用脚本
最后再添加一个任务计划 在开机时启用被禁用的电源恢复任务计划
到此完成
Leave a reply