From 2bac6dc6be9c5f39702876b69ead6d65890f8268 Mon Sep 17 00:00:00 2001 From: Gilles Soulier Date: Sun, 7 Jun 2026 09:30:30 +0200 Subject: [PATCH] 1 --- prox-visualizer/backend/.env.example | 17 ++++++++++++++++- tuto_config_proxmox.md | 26 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 tuto_config_proxmox.md diff --git a/prox-visualizer/backend/.env.example b/prox-visualizer/backend/.env.example index 1aa27c4..7ce6d3f 100644 --- a/prox-visualizer/backend/.env.example +++ b/prox-visualizer/backend/.env.example @@ -8,4 +8,19 @@ PROXMOX_TIMEOUT=15 # Liste des serveurs Proxmox au format JSON # Format: [{"name": "Cluster-A", "url": "https://10.0.0.1:8006", "token_name": "api-visualizer@pve!visualizer", "token_value": "uuid-du-token"}] -PROXMOX_SERVERS='[]' +PROXMOX_SERVERS='[ + { + "name": "PVE-M710q", + "url": "https://10.0.3.203:8006", + "token_name": "api@pam!api_token", + "token_value": "5b307341-861d-4717-8446-27c99b4a485c" + }, + { + "name": "PVE-MSI", + "url": "https://10.0.3.202:8006", + "token_name": "api@pam!api", + "token_value": "242485f6-93cf-4367-92f6-c950d1ca9d3c" + } + +]' + diff --git a/tuto_config_proxmox.md b/tuto_config_proxmox.md new file mode 100644 index 0000000..7215c4b --- /dev/null +++ b/tuto_config_proxmox.md @@ -0,0 +1,26 @@ +Pour que ton application puisse lister les ressources et modifier les descriptions des VMs sans compromettre la sécurité de ton infrastructure, il ne faut surtout pas utiliser le compte root@pam.Nous allons créer un utilisateur dédié (api-visualizer@pve) et lui associer un API Token avec les privilèges minimaux nécessaires (Moindre privilège).Voici le tutoriel pas à pas à réaliser sur ton Proxmox à l'adresse https://10.0.3.203:8006. +# 🛠️ Étape 1 : Créer le rôle personnalisé (Optionnel mais recommandé) +Par défaut, Proxmox propose le rôle PVEVMAdmin, mais il donne trop de droits (allumer/éteindre, supprimer des VMs, etc.). Nous allons créer un rôle sur-mesure qui ne permet que de lire et de modifier les configurations (pour les notes).Connecte-toi à l'interface web de ton Proxmox (https://10.0.3.203:8006).Va dans Datacenter (tout en haut de l'arbre à gauche) $\rightarrow$ Permissions $\rightarrow$ Roles.Clique sur Create.Nomme le rôle : VM-Visualizer.Dans le champ Privileges, coche exactement ces cases :VM.Audit (Pour voir et lister les VMs/LXCs)VM.Config.Options (Pour pouvoir modifier le champ description/notes)Sys.Audit (Pour voir l'état des nœuds et du cluster)Clique sur Create. +# 👥 Étape 2 : Créer l'utilisateur API +Reste dans Datacenter $\rightarrow$ Permissions $\rightarrow$ Users.Clique sur Add.Remplis les champs suivants :User name : api-visualizerRealm : pve (Proxmox VE authentication)Password : Mets un mot de passe robuste (il servira uniquement à valider la création du token).Clique sur Add. +# 🔑 Étape 3 : Générer l'API Token +Le Token permettra à ton script FastAPI de s'authentifier sans utiliser de mot de passe.Reste dans Datacenter $\rightarrow$ Permissions $\rightarrow$ API Tokens.Clique sur Add.Sélectionne l'utilisateur : api-visualizer@pve.Token ID : visualizer-token (ou le nom de ton choix).⚠️ Décoche impérativement la case Privilege Separation. Si tu la laisses cochée, le token aura des restrictions supplémentaires complexes à gérer. En la décochant, le token hérite exactement des droits qu'on va donner à l'utilisateur.Clique sur Add.🔴 ATTENTION : Une boîte de dialogue s'ouvre avec le Token ID et la Secret Value. Copie immédiatement la "Secret Value", car elle ne sera plus jamais affichée ! +# 🛡️ Étape 4 : Assigner les permissions +Maintenant, il faut dire à Proxmox où cet utilisateur a le droit d'agir (sur tout le datacenter).Reste dans Datacenter $\rightarrow$ Permissions.Clique sur Add $\rightarrow$ User Permission.Remplis les champs :Path : / (Cela signifie tout le Proxmox : nœuds, VMs, LXCs).User : api-visualizer@pve.Role : VM-Visualizer (Le rôle créé à l'étape 1).Propagate : Coché (pour que ça s'applique à toutes les sous-ressources).Clique sur Add. +# 📝 Étape 5 : Intégration dans ton fichier .env +Maintenant que tu as ton Token, voici comment tu dois remplir le fichier backend/.env dans VS Code pour ce serveur spécifique :Extrait de code +```bash +API_ENV=development +API_PORT=8000 + +# Remplace par tes vraies valeurs récupérées à l'étape 3 +PROXMOX_SERVERS='[ + { + "name": "PVE-203", + "url": "https://10.0.3.203:8006", + "token_name": "api-visualizer@pve!visualizer-token", + "token_value": "993a4bc2-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + } +]' +``` +Une fois cette configuration faite, ton Proxmox est prêt et sécurisé \ No newline at end of file