So, ich hab dann gestern mal ein bisschen mit
@rednag zusammen gebastelt... Zielsetzung war ja, von einem Windows-Client eine Windows-VM auf dem UGOS-NAS zu starten und sich - sobald diese verfügbar ist, wird sich automatisch via RDP verbunden.
"virsh" ist definitiv richtig, entweder direkt als root, oder halt als Benutzer, dieser muss dann aber in der Gruppe libvirt sein. Vorbereitung wäre dann zum einen SSH einzuschalten, zum anderen den gewünschten Benutzer in die Gruppe libvirt zu verfrachten (
usermod -aG libvirt <user>).
Wenn man mit dem gewünschten Benutzer Zugriff auf virsh hat, kann man in erster Instanz mal die vorhandenen VMs auslesen. Das funktioniert dann mittels
virsh list --all. Die "Namen" sind allerdings für niemanden zu gebrauchen (braucht man aber für später), etwas "freundlicher" wird es, wenn man noch den Parameter "--title" anhängt, denn der Titel ist dann der eigentliche VM-Name lt. UGOS-Webinterface, also wäre es dann
virsh list --all --title. Dort holt man sich (lt. Titel) dann den "Namen"(!) der gewünschten VM.
Danach eine Textdatei z.B. auf dem Desktop erstellen. Datei öffnen und Script-Inhalt einfügen und die oberen 6 Variablen nach eigenen Gegebenheiten/Vorstellungen anpassen:
Code:
$SSHHOST = "192.168.x.x" # NAS-IP
$SSHUSER = "MaxMustermann" # NAS-Benutzer
$VMNAME = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # VM-"Name"
$RDPHOST = "192.168.x.y" # IP der Windows-VM mit aktiviertem Remote-Desktop
$RETRY = "60" # Anzahl der Wiederholungen
$WAIT = "2" # Wartezeit in Sekunden zwischen Wiederholungen
# SSH-Verbindung initiieren und gewünschte VM starten
ssh $SSHUSER@$SSHHOST "virsh --connect qemu:///system start $VMNAME" | Out-Null
# Prüfen ob RDP-Port erreichbar ist, falls ja, Schleife verlassen
for ($i=0; $i -lt $RETRY; $i++) {
if (Test-NetConnection $RDPHOST -Port 3389 -InformationLevel Quiet) {
break
}
Start-Sleep -Seconds $WAIT
}
# Mittels RDP zur Windows-VM verbinden
mstsc /v:$RDPHOST
Datei speichern, Datei-Endung auf ".ps1" (PowerShell-Script) umschreiben, danach einen Rechtsklick auf die Datei machen und im Kontextmenü "mit Powershell ausführen" auswählen.
Zur allgemeinen Info: Das Script wurde auch nur grob zusammengestöpselt und grade noch (ohne es weiter zu testen) etwas "variablisiert", damit es übersichtlicher bei der Anpassung ist. Vielleicht funktioniert es jetzt auch schon nicht mehr (warum auch immer), ich hab halt kein UGREEN-NAS und
@rednag ist nicht da, somit kann also nicht getestet werden. Sollte theoretisch funktionieren, aber man weiss ja, wie das manchmal so läuft...
Zugriff mittels SSH-Key war an dieser Stelle nicht gewünscht (somit muss man beim Start des Scriptes sein Passwort für die SSH-Verbindung eingeben), aber jeder der sowas umsetzen kann, wird sich auch dieses lapidare Script selbst umbauen können (oder hat schon längst ein eigenes in der Tasche)
