# Tuto CLI Proxmox : utilisateur API Commandes a lancer sur le shell Proxmox en `root`. ## Creer l'utilisateur, le role et le token ```bash 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 : ```json { "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 : ```bash pveum acl list ``` Lister les utilisateurs : ```bash pveum user list ``` Lister les roles Prox Visualizer : ```bash pveum role list | grep ProxVisualizer ``` Verifier les permissions effectives du token : ```bash pveum user permissions 'api@pam!prox_visualizer_full' --path / ``` Lister les tokens de l'utilisateur : ```bash pveum user token list api@pam ``` ## Ajouter un serveur dans l'application Edite le fichier de configuration local de l'application : ```bash cd /home/gilles/Documents/projet/proxmox_list/prox-visualizer nano backend/.env ``` Ajoute une entree dans la variable `PROXMOX_SERVERS`. Exemple avec deux serveurs : ```bash 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 : ```bash cd /home/gilles/Documents/projet/proxmox_list/prox-visualizer ./start.sh ``` Le frontend affiche une URL locale et une URL reseau, par exemple : ```text http://127.0.0.1:5173/ http://10.0.1.45:5173/ ``` Pour arreter backend et frontend : ```text Ctrl+C ``` Si le port `5173` est deja occupe, Vite utilise automatiquement le port suivant, par exemple `5174`. ## Effacer et nettoyer Supprimer les ACL : ```bash pveum acl delete / \ --tokens 'api@pam!prox_visualizer_full' \ --roles ProxVisualizerFullAdmin pveum acl delete / \ --users api@pam \ --roles ProxVisualizerFullAdmin ``` Supprimer le token : ```bash pveum user token remove api@pam prox_visualizer_full ``` Supprimer l'utilisateur : ```bash pveum user delete api@pam ``` Supprimer le role : ```bash pveum role delete ProxVisualizerFullAdmin ``` Verifier que tout est nettoye : ```bash 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.