1
This commit is contained in:
@@ -8,4 +8,19 @@ PROXMOX_TIMEOUT=15
|
|||||||
|
|
||||||
# Liste des serveurs Proxmox au format JSON
|
# 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"}]
|
# 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"
|
||||||
|
}
|
||||||
|
|
||||||
|
]'
|
||||||
|
|
||||||
|
|||||||
@@ -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é
|
||||||
Reference in New Issue
Block a user