本帖最后由 Change 于 2018-7-31 08:25 编辑
相关资料均来自互联网,我只是一个测试和搬运工
最近淘到一款UPS,中文品牌叫伊顿,想着接入HomeAssistant(其实没什么卵用,也就看看状态信息,HomeAssistant历史记录什么的)。
最主要的是通知其他设备关机,尤其是NAS,保护硬盘很有必要。虽然可以直连NAS,但是那样就不太好通知其他机器了。
本帖中涉及到的硬件有: 1、QNAP的NAS;2、ESXI小主机一台(上面跑着主路由系统、Debian 9)
思路如下:
1、UPS通过USB连接ESXI小主机
2、在ESXI管理里把UPS分配给虚拟机Debian 9
3、处理好Debian9里的nut服务端,并接入HomeAssistant中
4、在QNAP中添加UPS信息
5、给ESXI添加上UPS信息
解决1和2的方法
解决3的方法如下:
UPS接入HomeAssistant本论坛有大佬已经发过,按照他的操作即可,只有一个地方不同,后面会提到。点此直达教程
按照大佬的步骤操作,如果你跟我一样用的是QNAP的NAS,在大佬教程里的第三步,也就是配置nut的时候,把[eaton]替换成[qnapups]
为了后续接入ESXI系统,在此你需要多改一个配置文件,添加一个用户名和密码,ESXI必须要有用户名和密码,否则ups服务不会启动,切记,至少ESXI6.7空用户名和密码无法启动,其他版本不知道。
nano /etc/nut/upsd.users
找到配置文件示例的位置,修改成如下
# Example:
[admin]
password = 123456
actions = SET
instcmds = ALL
核心的东西开源的UPS管理软件,可以去官网看看支持的UPS不少,点此直达
解决4的方法如下:
由于我用的是QNAP的NAS,添加网络UPS的核心关键是UPS服务器公布的UPS名称必须是:qnapups,否则不识别,群晖的话我没有用过,请自行查阅相关文档
解决5的步骤如下
先上nut client
链接: https://pan.baidu.com/s/1tD3E0wma5pYM6NwIUUhTYw 密码:
1、esxi开启ssh
2、登陆ESXI管理界面—配置—安全和用户—接受级别—社区
3、下载上面网盘里的nut客户端用winscp上传nut client至esxi /tmp目录
xshell或其他终端进入esxi
执行下面的命令安装
cd /tmp
tar -xzf NutClient-ESXi-2.0.0.tar.gz
sed -i 's/--no-sig-check //g' upsmon-install.sh
sh upsmon-install.sh
安装没有问题的话,回得到如下回显
Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: Margar_bootbank_upsmon_2.7.4-2.0.0
VIBs Removed:
VIBs Skipped:
如果回显如上面所示,表面安装正确,执行重启
/etc/init.d/hostd restart
4、登陆ESXI管理界面
管理---系统---高级设置----搜索里写nut
UserVars.NutUpsName:[email protected](这里的地址填nut服务器的地址)
UserVars.NutUser:admin(上面在unt配置文件里加的用户名)
UserVars.NutPassword:123456(上面在unt配置文件里加的密码)
UserVars.NutFinalDelay:1800(关机时间,我这是30分钟后关闭esxi)
编辑好上述参数,到管理----服务---搜索里搜ups
让nut服务随系统启动,并启动这个服务
回到ssh测试连接是否通畅,对upsc命令做下链接论
坛代码总是自动加超链接
cd /bin
ln -s /opt/nut/bin/upsc /bin/upsc
upsc [email protected]
回得到UPS信息的回显
battery.capacity: 9.00
battery.charge: 60
battery.charge.low: 20
battery.charge.restart: 0
battery.charger.status: charging
battery.energysave: no
battery.energysave.delay: 300
battery.energysave.load: 5
battery.protection: yes
battery.runtime: 3231
battery.type: PbAc
battery.voltage: 39.6
battery.voltage.nominal: 36
device.mfr: EATON
device.model: 5P 1550
device.serial: G297F46069
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.parameter.vendorid: 0463
driver.version: 2.7.4
driver.version.data: MGE HID 1.39
driver.version.internal: 0.41
input.current: 0.90
input.frequency: 50.0
input.frequency.extended: no
input.frequency.nominal: 50
input.sensitivity: normal
input.transfer.boost.low: 184
input.transfer.high: 281
input.transfer.low: 160
input.transfer.trim.high: 253
input.voltage: 227.6
input.voltage.extended: no
input.voltage.nominal: 230
outlet.1.autoswitch.charge.low: 0
outlet.1.delay.shutdown: 65535
outlet.1.delay.start: 3
outlet.1.desc: PowerShare Outlet 1
outlet.1.id: 1
outlet.1.status: on
outlet.1.switchable: yes
outlet.2.autoswitch.charge.low: 0
outlet.2.delay.shutdown: 65535
outlet.2.delay.start: 6
outlet.2.desc: PowerShare Outlet 2
outlet.2.id: 2
outlet.2.status: on
outlet.2.switchable: yes
outlet.desc: Main Outlet
outlet.id: 0
outlet.switchable: no
output.current: 0.70
output.frequency: 50.0
output.frequency.nominal: 50
output.powerfactor: 0.55
output.voltage: 227.6
output.voltage.nominal: 220
ups.alarm: Fatal EEPROM fault!
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.efficiency: 63
ups.firmware: 02.12.0025
ups.load: 10
ups.load.high: 105
ups.mfr: EATON
ups.model: 5P 1550
ups.power: 159
ups.power.nominal: 1550
ups.productid: ffff
ups.realpower: 88
ups.realpower.nominal: 1100
ups.serial: G297F46069
ups.shutdown: enabled
ups.start.auto: yes
ups.start.battery: yes
ups.start.reboot: yes
ups.status: ALARM OL CHRG
ups.test.interval: 2592000
ups.test.result: Done and passed
ups.timer.shutdown: 0
ups.timer.start: 0
ups.type: offline / line interactive
ups.vendorid: 0463
测试nutclient运行情况(会关闭ESXI主机,如果在主机旁可以测试,如果ESXI主机不在身边请酌情测试)
/opt/nut/sbin/upsmon -c fsd
各位同学,到站了,全体下车
PS:ESXI并不是在一停电就会执行关机命令,而是等到UPS电池电量剩余30%以后才会开始按照设置的时间倒计时关机,根据自己ups剩余电量在30%后的续航时间来确定(根据ups总负载来计算,通常ups的输出信息里会有显示,我这个伊顿上面有液晶显示)UserVars.NutFinalDelay的数值,单位是秒。
|