Proxmox Web Api - Shutdown Host

antony1

New Member
Aug 9, 2017
2
0
1
36
Hallo,

ich probiere gerade etwas mit meiner neuen Proxmox 5 Installation verschiedene Einstellungen aus.
Gibt es eine Möglichkeit den Host via Web Api herunterzufahren?
Den Befehl zum Shutdown der VMs habe ich bereits gefunden.

Viele Grüße,
Antony
 
check the API viewer - you are looking for "POST /api2/json/nodes/{node}/status"
 
Danke für die schnelle Antwort!

Ich habe bereits viele Varianten probiert, den POST Befehl abzusetzen, ich bekomme aber stets "command":"property is missing and it is not optional". Versuche ich andere GET Befehle oder ähnliches, ohne notwendige Parameter abzusetzen funktioniert es, ohne Fehlermeldung.

/api2/json/nodes/node1/status/?command=shutdown
/api2/json/nodes/node1/status?command=shutdown
/api2/json/nodes/node1/status/command/shutdown
/api2/json/nodes/node1/status -command=shutdown

bringen z.B. den genannten Fehler.

Die Hilfeseiten haben mir auch noch nicht weitergeholfen.
Irgendwie tue ich mich schwer dieses Befehl über die Web Api abzusetzen. Gibt es eine Beispiel-URL oder ein Beispiel-Skript für absolute Anfänger auf dem Gebiet?

Beste Grüße,
Antony
 
bei POST requests wird der inhalt als teil des bodies geschickt, nicht als teil der URL. mit cURL würde der request z.b. so aussehen:

Code:
curl 'https://REPLACEMEWITHIPORHOSTNAME:8006/api2/extjs/nodes/NODENAME/status' -H 'Cookie: PVEAuthCookie=REPLACEMEWITHCORRECTCOOKIE' -H 'Content-Type: application/x-www-form-urlencoded' -H 'CSRFPreventionToken: REPLACEMEWITHCORRECTTOKEN' --data 'command=shutdown' --insecure
 
Ich muss noch ein Script schreiben was alle Rechner an der USV runterfährt, sobald die USV auf Batteriebetrieb umschaltet.

1.) Kann ich da einfach per ssh ein "shutdown now" absetzen oder wäre es sicherer da die Proxmox WebAPI dafür zu nutzen, damit auch alle VMs usw korrekt runtergefahren werden?

2.) Wenn die WebAPI empfehlenswert wäre und ich mit einem gesonderten "shutdown" User den Proxmox-Server runterfahren möchte, welche Privilegien und welchen Pfad müsste ich dann bei "Permissions" wählen damit das runterfahren klappt aber nach Möglichckeit nichts anderes sonst?

Im SSH Fall für ich da einfach einen neuen User anlegen, dem ein eigenen RSA Key zur Authentifizierung verpassen, sudoers installieren und per "/etc/sudoers" dem user dann die rechte einräumen auch ohne root Rechte die Datei " /sbin/shutdown" ausführen zu dürfen.
 
Last edited:
Ich muss noch ein Script schreiben was alle Rechner an der USV runterfährt, sobald die USV auf Batteriebetrieb umschaltet.

1.) Kann ich da einfach per ssh ein "shutdown now" absetzen oder wäre es sicherer da die Proxmox WebAPI dafür zu nutzen, damit auch alle VMs usw korrekt runtergefahren werden?

2.) Wenn die WebAPI empfehlenswert wäre und ich mit einem gesonderten "shutdown" User den Proxmox-Server runterfahren möchte, welche Privilegien und welchen Pfad müsste ich dann bei "Permissions" wählen damit das runterfahren klappt aber nach Möglichckeit nichts anderes sonst?

Im SSH Fall für ich da einfach einen neuen User anlegen, dem ein eigenen RSA Key zur Authentifizierung verpassen, sudoers installieren und per "/etc/sudoers" dem user dann die rechte einräumen auch ohne root Rechte die Datei " /sbin/shutdown" ausführen zu dürfen.

Ein einfacher shutdown auf dem hypervisor reicht, alle vm's werden automatisch zuerst runtergefahren.

Bei einem Professionellen Setup würdest du kein Script schreiben sondern, nut-server auf dem Server mit der USV installieren und bei allen anderen nut-client. Nut ist ein Dienst um den USV Status anderen Rechnern zur Verfügung zu stellen. Nut-client fährt die Rechner dann automatisch runter. https://packages.debian.org/buster/nut.
 
Das könnte ich natürlich auch versuchen. Mein USV-Modell ist bei NUT nur leider nicht bei den unterstützten Geräten aufgeführt (andere Modelle des Herstellers aber schon mit "blazer_usb" Treiber). Müsste ich testen ob NUT das trotzdem erkennt. Man Plan war die USV an einen Raspberry Pi anzuschließen und der fährt dann 2 FreeNAS Server, 1 Proxmox Server, 2 Raspberry Pis, 4 OpenWRT Router und anschließend sich selbst herunter.

Edit:
Habe den einen Raspberry Pi nun als NUT Server eingerichtet und einen weiteren Raspberry Pi + Proxmox Server + FreeNAS Server als NUT clients. Scheint soweit zu funktionieren nur das mit den OpenWRT Routern habe ich mal weggelassen, da ich nicht gefunden habe wie ich ganz sicher erst die Router als letztes runterfahren kann. Nicht das die wichtigen Server dann nicht runterfahren weil sie wegen runtergefahrenen Routern den NUT-Server nicht mehr erreichen können.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!