Proxmox Api

schlawiner

Well-Known Member
Mar 12, 2018
40
3
48
50
über die Api weise ich einer VM den Benutzer für die Console zu

Code:
            $vms = "/vms/$newvmid";
            $user_settings = array();
            $user_settings['path'] = $vms;
            $user_settings['users'] = "$newvmid@pve";
            $user_settings['roles'] = "PVEVMUser";
            $pve2->put("/access/acl", $user_settings);

gibt es die Möglichkeit hier auch einem zugewiesenen Benutzer kurzzeitig die Gruppe auf NoAccess zu setzen ? z.B. solang der PXE Vorgang läuft ?
 
Das sieht ja interessant aus. Ich hatte zum Thema API nur was mit WEB gefunden.
Ist das Perl? Hast Du das pve2 Objekt erstellen müssen oder gibt es das als globales Objekt?


Grüße
 
Das ist die reguläre pve2 api welche oft eingesetzt wird und auch im Proxmox Wiki zu finden ist. Darum geht es aber hier nicht, sondern wie ich hier den status des users in Noaccess ändern kann oder den User von der jeweiligen vms entfernen.
 
du meinst solange der PXE vorgang in der VM läuft? nein, das weißt du ja außerhalb nicht (und eine bereits bestehende VNC verbindung ist außerdem nicht von nachträglichen ACL änderungen erfasst).
 
Wenn die KVM neu startet wird, was ja bei PXE notwendig ist, wird die Verbindung ja geschlossen und wieder neu geöffnet bei einem Refresh, daher sehe ich hier nicht das Problem.

Gibt es eine Möglichkeit den User bei nur der einen KVM zu entfernen via Api ?
 
Das ist die reguläre pve2 api welche oft eingesetzt wird und auch im Proxmox Wiki zu finden ist.

Die API ist REST-basiert, wie man darauf zugreift ist Client-spezifisch und egal so lange man in der Programmiersprache in der man arbeiten will in der Lage ist darauf zuzugreifen.
 
Für alle die welche es interesiert, die Antwort war relativ simple

vor dem PXE Vorgang, den zugewiesenen user, von der VM entfernen

Code:
            $user_settings = array();
            $user_settings['path'] = $vms;
            $user_settings['users'] = "$newvmid@pve";
            $user_settings['roles'] = "PVEVMUser";
            $user_settings['delete'] = "1";
            $pve2->put("/access/acl", $user_settings);

sobald der PXE Vorgang beendet ist, wieder hinzufügen

Code:
            $vms = "/vms/$newvmid";
            $user_settings = array();
            $user_settings['path'] = $vms;
            $user_settings['users'] = "$newvmid@pve";
            $user_settings['roles'] = "PVEVMUser";
            $pve2->put("/access/acl", $user_settings);
 
  • Like
Reactions: CoolTux

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!