This commit is contained in:
2026-06-07 09:30:30 +02:00
parent fa08851041
commit 2bac6dc6be
2 changed files with 42 additions and 1 deletions
+16 -1
View File
@@ -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"
}
]'
+26
View File
@@ -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é