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

166 lines
3.6 KiB
Markdown

# 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.