Files
proxmox_list/tuto_user_cli_proxmox.md
T
2026-06-07 11:33:20 +02:00

3.6 KiB

Tuto CLI Proxmox : utilisateur API

Commandes a lancer sur le shell Proxmox en root.

Creer l'utilisateur, le role et le token

pveum user add api@pam --comment "Prox Visualizer API user"

pveum role add ProxVisualizerFullAdmin \
  -privs "Sys.Audit Sys.Modify Sys.PowerMgmt VM.Audit VM.Allocate VM.PowerMgmt VM.Clone VM.Migrate VM.Backup VM.Snapshot VM.Config.Disk VM.Config.CDROM VM.Config.CPU VM.Config.Memory VM.Config.Network VM.Config.HWType VM.Config.Options VM.Config.Cloudinit Datastore.Audit Datastore.AllocateSpace Datastore.AllocateTemplate"

pveum aclmod / \
  --users api@pam \
  --roles ProxVisualizerFullAdmin

pveum user token add api@pam prox_visualizer_full \
  --privsep 1 \
  --comment "Prox Visualizer full admin token"

pveum aclmod / \
  --tokens 'api@pam!prox_visualizer_full' \
  --roles ProxVisualizerFullAdmin

La commande pveum user token add affiche le secret une seule fois. A conserver dans le fichier .env de l'application :

{
  "name": "PVE-NODE",
  "url": "https://10.0.3.203:8006",
  "token_name": "api@pam!prox_visualizer_full",
  "token_value": "SECRET_AFFICHE_PAR_PROXMOX"
}

Lister et verifier

Lister les ACL :

pveum acl list

Lister les utilisateurs :

pveum user list

Lister les roles Prox Visualizer :

pveum role list | grep ProxVisualizer

Verifier les permissions effectives du token :

pveum user permissions 'api@pam!prox_visualizer_full' --path /

Lister les tokens de l'utilisateur :

pveum user token list api@pam

Ajouter un serveur dans l'application

Edite le fichier de configuration local de l'application :

cd /home/gilles/Documents/projet/proxmox_list/prox-visualizer
nano backend/.env

Ajoute une entree dans la variable PROXMOX_SERVERS. Exemple avec deux serveurs :

PROXMOX_SERVERS='[
  {
    "name": "PVE-M710q",
    "url": "https://10.0.3.203:8006",
    "token_name": "api@pam!prox_visualizer_full",
    "token_value": "SECRET_DU_TOKEN_M710Q"
  },
  {
    "name": "PVE-MSI",
    "url": "https://10.0.3.202:8006",
    "token_name": "api@pam!prox_visualizer_full",
    "token_value": "SECRET_DU_TOKEN_MSI"
  }
]'

Attention : le contenu de PROXMOX_SERVERS doit rester du JSON valide. Il ne faut pas mettre de virgule apres le dernier serveur.

L'application relit automatiquement cette liste au prochain appel API. Apres modification de backend/.env, il suffit donc de rafraichir le dashboard ou de cliquer sur le bouton de rafraichissement.

Relancer l'application

Depuis la racine du projet :

cd /home/gilles/Documents/projet/proxmox_list/prox-visualizer
./start.sh

Le frontend affiche une URL locale et une URL reseau, par exemple :

http://127.0.0.1:5173/
http://10.0.1.45:5173/

Pour arreter backend et frontend :

Ctrl+C

Si le port 5173 est deja occupe, Vite utilise automatiquement le port suivant, par exemple 5174.

Effacer et nettoyer

Supprimer les ACL :

pveum acl delete / \
  --tokens 'api@pam!prox_visualizer_full' \
  --roles ProxVisualizerFullAdmin

pveum acl delete / \
  --users api@pam \
  --roles ProxVisualizerFullAdmin

Supprimer le token :

pveum user token remove api@pam prox_visualizer_full

Supprimer l'utilisateur :

pveum user delete api@pam

Supprimer le role :

pveum role delete ProxVisualizerFullAdmin

Verifier que tout est nettoye :

pveum acl list
pveum user list
pveum role list | grep ProxVisualizer

Si une commande indique que le token, le role ou l'utilisateur n'existe pas, ce n'est pas bloquant : l'element etait deja absent.