加入虚拟机添加物理开关章节

This commit is contained in:
gaolifeng
2022-10-17 09:36:30 +08:00
parent 64e2cf069b
commit 4edc3f4bf8
3 changed files with 12 additions and 9 deletions

View File

@@ -319,7 +319,10 @@ VirtrIO驱动下载地址https://fedorapeople.org/groups/virt/virtio-win/dire
- [将PVE设置为DHCP动态地址](./details/把pve配置成DHCP.md)
- [开机IP自检及更新脚本](./details/开机IP自检及更新脚本.md)
- UPS配置([apc施耐德](./details/pve下安装施耐德ups配套软件及简单配置.md)、[雷迪司](./details/雷迪司Viewpower在pve上的部署.md))
- UPS配置
- [apc施耐德](./details/pve下安装施耐德ups配套软件及简单配置.md)
- [雷迪司](./details/雷迪司Viewpower在pve上的部署.md)
- [为虚拟机添加物理开关](./details/给虚拟机加装一个物理开机键.md)
TrueNas

BIN
_resources/2k553-vhsvy.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

View File

@@ -20,23 +20,23 @@
首先来看按钮,手头最大的按钮就是这个了,它有四个引脚,对角线的引脚是成对的。
<img src="../../_resources/f30d3039c1cf4a60a8ceebaf60f341ac.png" alt="3bb42906fa9635a0e2610dc19b49b0b1.png" width="472" height="269" class="jop-noMdConv">
![f30d3039c1cf4a60a8ceebaf60f341ac.png](../_resources/f30d3039c1cf4a60a8ceebaf60f341ac.png)
我把它接的两极接在了右侧的第1和第6引脚上。第1引脚对应的是5V的高电平而第6引脚对应的是GPIO18所以我后续编程时就需要对GPIO18进行监听。
![5f0d30038b88f61e7b14b7da1c76df19.png](../../_resources/598add803fdb443a9c844b9b4ab1dbdd.png)
![5f0d30038b88f61e7b14b7da1c76df19.png](../_resources/598add803fdb443a9c844b9b4ab1dbdd.png)
用杜邦线直接插在这两个引脚上再用鸡屎焊把线的另一头焊在开关引脚上。然后把开关用扎带绑在服务器的框架上。服务器的框架是为了把ITX机箱、硬盘架、树莓派、交换机整合在一起用铝型材自制的。详情可见我的这篇文章。由于后面测试时并没有发现电平不稳定的情况所以图省事没有接下拉电阻按说还需要一个电阻来稳定电平。
<img src="../../_resources/f8a3e298be3544f7ab38570216f1d531.png" alt="4841fed8865a31135b6d9df992640b4b.png" width="479" height="269" class="jop-noMdConv">
![f8a3e298be3544f7ab38570216f1d531.png](../_resources/f8a3e298be3544f7ab38570216f1d531.png)
硬件完事了以后就可以开始软件部分了。首先要在PVE中获取一个token在Datacenter中Permissions->API Tokens功能中点击左上方的add按钮。填写token的名字及备注信息然后将旁边的Privileget Separation勾选框去掉这样可以使token具有与当前帐号完全相同的权限。
![dafb2c8787564800cdc4a10bae61afa2.png](../../_resources/5562b51876d342afbb56b48b0100c640.png)
![dafb2c8787564800cdc4a10bae61afa2.png](../_resources/5562b51876d342afbb56b48b0100c640.png)
点击add按钮后你会看到如下信息下方提示Secret只会在此时显示一次以后就再也看不到这个序列号了。所以此时要把这个Secret拷出来保存好。上面的TokenID同样重要只不过这个值可以通过你自己的帐户信息推断出来。
![ddd97259397c13c1b88c185958a6b8d2.png](../../_resources/0767320aaee94b79b3ec89792eef38e7.png)
![ddd97259397c13c1b88c185958a6b8d2.png](../_resources/0767320aaee94b79b3ec89792eef38e7.png)
有了这两个值再配合上上文提到的url你就可以通过脚本来触发虚拟机的开机动作了。下面是脚本全文可以说非常简单了核心代码只有十几行配合注释很容易看懂。实际上代码的框架也是我在网上找的只需要加上请求发送的逻辑就可以了。使用树莓派开发这种功能确实是方便快捷。
@@ -94,12 +94,12 @@ GPIO.cleanup()
程序保存在树莓派上以后,执行`python windows_switch.py`会发现程序block住了这时候每当你按下按钮就会发现命令行打印出了open的日志信息。
![7f7eff2763ad435299b2bd6cfdc53fef.png](../../_resources/0910ccd8271f4a8f9275be8f3c3cfab7.png)
![7f7eff2763ad435299b2bd6cfdc53fef.png](../_resources/0910ccd8271f4a8f9275be8f3c3cfab7.png)
再看虚拟机,就已经开始启动了。但这还没完,因为程序一直在前台跑着,如果关掉控制台,那按钮就失效了,所以还需要给这个脚本注册一个服务,让它开机启动。这样一来就可以愉快地使用物理按钮一键开机了,由于这台虚拟机直通了显卡,所以可以在物理显示器上直接显示画面。
![2k553-vhsvy.gif](file:///F:/programs/JoplinProfile/resources/b72c93154ab14b94a518cd6f984a5e6d.gif)
![2k553-vhsvy.gif](../_resources/2k553-vhsvy.gif)
## 总结
经过此番调教后服务器上的windows虚拟机拥有了虚实结合的能力。虚则可以无影无踪又召之即来实则可以按键开机开屏即用。在家时它直接使用物理设备高效响应在外面时只要你能接入互联网它就总有方法伴你左右像一只精灵随时听你差遣。这半年来涉及aquarhome的项目所有开发工作我都是使用它来完成的还用它剪辑了我的第一条B站视频。对我来说绝对是妥妥的生产力工具。
经过此番调教后服务器上的windows虚拟机拥有了虚实结合的能力。虚则可以无影无踪又召之即来实则可以按键开机开屏即用。在家时它直接使用物理设备高效响应在外面时只要你能接入互联网它就总有方法伴你左右像一只精灵随时听你差遣。