VMM_remote-control/README.md

31 lines
1.8 KiB
Markdown

# 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](https://synocommunity.com/package/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
```