Steuerung von VMs über ein Webskript
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Stephan Geisler 52bee6f494 „vm_control.sh“ ändern 1 month ago
LICENSE Initial commit 5 months ago
README.md „README.md“ ändern 5 months ago
VMM_remote-control.png Dateien hochladen nach „“ 4 months ago
vm_control.php „vm_control.php“ ändern 1 month ago
vm_control.sh „vm_control.sh“ ändern 1 month ago

README.md

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