1.8 KiB
VMM_remote-control
Steuerung von VMs über ein Webskript
Es ist ja immer eine heikle Sache, von außen Prozesse im DSM zu steuern. Besser ist es immer, von innen nach außen zu arbeiten. In diesem Fall wird beides kombiniert. Einzige Vorraussetzung ist die Webstation sowie die Inotify-tools. Über eine URL kann man eine kleine Steuerdatei auf dem Webserver manipulieren. Inotifywait prüft diese Datei permanent auf Änderungen und wertet definierte Parameter aus um ggf. die VM zu starten oder zu stoppen.
Beispiel, um die VM mit Namen Win10
zu starten (der hinterlegte Key lautet 0815):
https://example.com/vm_control.php?vmname=Win10&state=on&key=0815
Einschränkung:
VMs, die lediglich angehalten wurden, können so nicht gestartet werden. Dafür hatte ich den passenden Befehl nicht gefunden. Wenn ihn jemand hat: immer her damit 😃
- läuft die Web Station mit PHP und ist von da erreichbar, von wo aus man das Skript starten möchte?
- sind die inotify-tools installiert?
-
lege die Datei
vm_control.php
in ein Webverzeichnis deiner Wahl -
(optional) Passe den Key nach deinen Wünschen an (Standard:
0815
) -
lege die Datei
vm_control.sh
in ein nicht öffentliches Verzeichnis ab -
mache das Skript ausführbar (
chmod +x "/pfad/zum/skrip/vm_control.sh"
) -
öffne das Skript in einem Texteditor (z.B. den DSM eigenen) und passe den Pfad zu der Datei
vm_control.php
an. -
Jetzt muss nur noch die Überwachung der automatisch erstellten Datei
vm_state.php
gestartet oder gestoppt werden. Am einfachsten geht das im DSM-Aufgabenplaner. Wichtig: der Userroot
muss genutzt werden, da nur er die VM starten kann.
/pfad/zu/vm_control.sh start
# oder
/pfad/zu/vm_control.sh stop