166 lines
3.6 KiB
Markdown
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.
|