Steuerung von VMs über ein Webskript
Find a file
2022-02-06 18:10:52 +00:00
LICENSE Initial commit 2022-02-04 13:46:33 +00:00
README.md „README.md“ ändern 2022-02-04 16:45:01 +00:00
vm_control.php „vm_control.php“ ändern 2022-02-04 16:42:59 +00:00
vm_control.sh „vm_control.sh“ ändern 2022-02-06 18:10:52 +00:00

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?
  1. lege die Datei vm_control.php in ein Webverzeichnis deiner Wahl

  2. (optional) Passe den Key nach deinen Wünschen an (Standard: 0815)

  3. lege die Datei vm_control.sh in ein nicht öffentliches Verzeichnis ab

  4. mache das Skript ausführbar (chmod +x "/pfad/zum/skrip/vm_control.sh")

  5. öffne das Skript in einem Texteditor (z.B. den DSM eigenen) und passe den Pfad zu der Datei vm_control.php an.

  6. 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 User root muss genutzt werden, da nur er die VM starten kann.

/pfad/zu/vm_control.sh start
# oder
/pfad/zu/vm_control.sh stop