『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 9401|回复: 18

[新奇玩法] wake_on_lan + shell_command实现ESXi Server开关机

[复制链接]

6

主题

130

帖子

659

积分

论坛技术达人

积分
659
金钱
524
HASS币
50
发表于 2020-11-4 22:16:06 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 leon_xi 于 2020-11-5 14:30 编辑

我用的是Dell工作站,四核,24G内存
主要用于部署Windows开发环境

重点是耗电厉害,虽然可以使用手机ssh应用关机,但是还想更懒一点

(现在每天上床关个机,出门在门口开个机,还没有打通外网,安全考虑,以后考虑部分功能上云,虽然还是会有很多计时浪费,但是,比原来24小时开机要好很多了)

于是参考了论坛大佬的教程,准备使用wake_on_lan控制开机,使用shell_command登录服务器ssh,执行poweroff命令执行关机

关键是需要一行命令执行,于是使用了sshpass
先使用shell_command在home-assistant启动事件中安装sshpass

apk add --update --no-cache sshpass

由于时间较长,重启后,会出现timeout错误,没关系,再重启一次,就成功了,尝试执行一次script看看有没有报错,没有说明成功了

switch.png

评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

6

主题

130

帖子

659

积分

论坛技术达人

积分
659
金钱
524
HASS币
50
 楼主| 发表于 2020-11-4 22:17:37 来自手机 | 显示全部楼层
本帖最后由 leon_xi 于 2020-11-5 14:19 编辑

安装sshpass配置

shell_command:
  install_sshpass: apk add --update --no-cache sshpass

script:
  install_sshpass:
    sequence:
      service: shell_command.install_sshpass

automation:
  - alias: install_sshpass
    initial_state: true
    trigger:
      platform: homeassistant
      event: start
    action:
      - service: shell_command.install_sshpass

开关ESXi Server配置

shell_command:
  shutdown_esxi: sshpass -p yourpassword ssh -o stricthostkeychecking=no -p22 [email protected] 'poweroff'

script:
  shutdown_esxi:
    sequence:
      service: shell_command.shutdown_esxi

switch:
  - platform: wake_on_lan
    name: exsi server
    host: "192.168.0.3"
    mac: "18:66A:05:F2:FD"
    turn_off:
      service: shell_command.shutdown_esxi
回复

使用道具 举报

3

主题

116

帖子

1247

积分

金牌会员

Rank: 6Rank: 6

积分
1247
金钱
1131
HASS币
10
发表于 2020-11-5 09:40:14 | 显示全部楼层
leon_xi 发表于 2020-11-4 22:17
二楼预留代码发布

ESXi Server 默认关闭shell_command吧, 而且开了一直有气泡提示不安全.
我是写了一个爬虫, 模拟登入,发送关机http请求
回复

使用道具 举报

6

主题

130

帖子

659

积分

论坛技术达人

积分
659
金钱
524
HASS币
50
 楼主| 发表于 2020-11-5 14:18:57 | 显示全部楼层
duchenpaul 发表于 2020-11-5 09:40
ESXi Server 默认关闭shell_command吧, 而且开了一直有气泡提示不安全.
我是写了一个爬虫, 模拟登入,发送 ...

我应该没有打开shell command for esxi,只是打开了ssh,没有安全警告
回复

使用道具 举报

74

主题

1942

帖子

7885

积分

元老级技术达人

积分
7885
金钱
5893
HASS币
430

活跃会员教程狂人

发表于 2020-11-5 16:41:32 | 显示全部楼层
本帖最后由 咸味土豆 于 2020-11-5 16:57 编辑

可以试一试装这个插件,应该是API接口的,直接集成很多功能。
https://github.com/wxt9861/esxi_stats

不过他并不能开关主机...
所有过往,皆为序章。
回复

使用道具 举报

6

主题

130

帖子

659

积分

论坛技术达人

积分
659
金钱
524
HASS币
50
 楼主| 发表于 2020-11-5 22:27:31 | 显示全部楼层
咸味土豆 发表于 2020-11-5 16:41
可以试一试装这个插件,应该是API接口的,直接集成很多功能。
https://github.com/wxt9861/esxi_stats

恩,看看它是什么样的方法
ESXi本身是有Shell客户端的,也许是读取返回文本解析判断的,只是猜测
回复

使用道具 举报

3

主题

116

帖子

1247

积分

金牌会员

Rank: 6Rank: 6

积分
1247
金钱
1131
HASS币
10
发表于 2020-11-6 09:38:11 | 显示全部楼层
本帖最后由 duchenpaul 于 2020-11-6 09:41 编辑
leon_xi 发表于 2020-11-5 14:18
我应该没有打开shell command for esxi,只是打开了ssh,没有安全警告

我这开了这些ssh这种远程服务都会有警告 esxi 6.7
SSH is enabled on this host. You should disable SSH unless it is necessary for administrative purposes
回复

使用道具 举报

6

主题

130

帖子

659

积分

论坛技术达人

积分
659
金钱
524
HASS币
50
 楼主| 发表于 2020-11-6 10:13:16 来自手机 | 显示全部楼层
duchenpaul 发表于 2020-11-6 09:38
我这开了这些ssh这种远程服务都会有警告 esxi 6.7
SSH is enabled on this host. You should disable SSH  ...

哦,这个警告正常的,忽略就行
回复

使用道具 举报

2

主题

29

帖子

86

积分

注册会员

Rank: 2

积分
86
金钱
57
HASS币
0
发表于 2020-11-18 18:04:57 | 显示全部楼层
都上esxi了还在乎电费啊 四核而已 不满载就40w的功耗
回复

使用道具 举报

9

主题

787

帖子

3829

积分

论坛元老

Rank: 8Rank: 8

积分
3829
金钱
3042
HASS币
87
发表于 2020-11-19 17:35:44 | 显示全部楼层
有没有开关exsi里面虚拟机的方法,哈哈~
还是ha连上ssh直接用esxi的开关虚拟机命令就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 22:29 , Processed in 0.081312 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表