VMware Private AI (Foundation with NVIDIA) — Opérations GPU et Hébergement de Modèles
Avertissement : Projet open source maintenu par la communauté, non affilié à, ni approuvé par, ni sponsorisé par VMware, Inc., Broadcom Inc., ou NVIDIA Corporation. « VMware », « vSphere » et « VCF » sont des marques de Broadcom ; « NVIDIA » et « vGPU » sont des marques de NVIDIA. Le code source est publiquement vérifiable sous licence MIT.
L'objectif GPU / infrastructure IA pour la famille de skills VMware — inventaire des hôtes et dispositifs GPU, consommateurs vGPU, utilisation GPU en temps réel, catalogue de profils vGPU / DirectPath, affectation vGPU, et modèles et bases de connaissances hébergés par Private AI Service (PAIS) — via l'API Web Services vSphere 9.x / VCF 9.1 (pyVmomi) et l'API REST PAIS.
Skills compagnons : vmware-aiops (les VMs vCenter derrière les charges de travail IA — alimentation/instantané/clonage), vmware-vks (Tanzu Kubernetes compatible GPU), vmware-monitor (santé vSphere en lecture seule).
Statut : v1.0.1 — encore bêta sur le fond. Skill n°15 de la famille. Le passage de 0.2.x à 1.0.1 est une correction de distribution, pas une revendication de maturité : la première version retirée utilisait 1.0.0, et ClawHub résout
latestpar ordre de version, donc chaque version 0.x y était invisible. Les mises en garde bêta ci-dessous restent valables. Chaque chemin d'API est vérifié par rapport aux sources officielles Broadcom/NVIDIA avant utilisation (tests/eval/spec/privateai_endpoints.py) — aucun point de terminaison écrit de mémoire. Les noms de champs des réponses GET et les chemins exacts PAIS sont défensifs et en attente de validation sur du matériel 9.x en direct (voir Dépannage). Régi par le harnais de la famille (audit + politique + messages d'erreur pédagogiques) ; l'autorisation lecture vs écriture est déléguée au rôle RBAC du compte de service vCenter.
Ce que fait ce skill
| Catégorie | Outils | Nb | Lecture/Écriture |
|---|---|---|---|
| Inventaire GPU | liste/obtention hôte, liste dispositifs, liste consommateurs vGPU | 4 | 4 L |
| Utilisation GPU | utilisation en temps réel par VM vGPU (% GPU, % mémoire, température) | 1 | 1 L |
| État GPU | verdict de préparation vGPU/PAIS par hôte + raisons de blocage | 1 | 1 L |
| Catalogue de profils | liste profils vGPU, liste profils DirectPath | 2 | 2 L |
| Validation de profil | pré-validation d'un changement de profil vGPU (état d'alimentation + offre de l'hôte) | 1 | 1 L |
| Affectation vGPU | définir le profil vGPU d'une VM (la VM doit être éteinte) | 1 | 1 É |
| Private AI Service | liste modèles hébergés, catalogue modèles, liste bases de connaissances, liste sources de données | 4 | 4 L |
| Supervision PAIS | récapitulatif GPU de la flotte (utilisation/mémoire/température, chauds/inactifs, plus sollicités) | 1 | 1 L |
| Dimensionnement et air-gap | conseiller dimensionnement GPU/stockage LLM, inspecteur d'images locales pais.yml | 2 | 2 L |
17 outils MCP (16 lectures / 1 écriture). Les lectures sont strictement non destructives. L'unique écriture (vgpu_assign) prévisualise son périmètre d'impact, refuse une VM allumée, n'éteint jamais la VM elle-même, est doublement confirmée en CLI, et est enregistrée dans le journal d'audit. Pré-validez l'écriture avec vgpu_profile_validate.
Installation rapide
uv tool install vmware-privateai
vmware-privateai version
vmware-privateai gpu host-list # première lecture — liste les hôtes équipés d'un GPU
La configuration se trouve dans ~/.vmware-privateai/config.yaml (cibles + section pais: optionnelle) ; les mots de passe et le jeton porteur PAIS se trouvent dans ~/.vmware-privateai/.env (chmod 600). Voir references/setup-guide.md.
Quand utiliser ce skill
Utilisez vmware-privateai pour la couche GPU / infrastructure IA : quels hôtes et dispositifs physiques ont des GPU, quelles VMs possèdent un vGPU et avec quel profil, l'utilisation GPU en temps réel, le catalogue de profils vGPU/DirectPath assignables, le changement de profil vGPU d'une VM, ainsi que les modèles et bases de connaissances servis par Private AI Service — lorsque le contexte est explicitement VMware / vSphere / VCF Private AI / NVIDIA vGPU.
À NE PAS utiliser quand : la tâche concerne le cycle de vie de la VM sous-jacente — mise sous/hors tension, instantané, clonage, migration, reconfiguration CPU/RAM (→ vmware-aiops) ; l'inventaire vSphere en lecture seule, les alarmes ou la santé de l'hôte (→ vmware-monitor) ; ou les espaces de noms Tanzu Kubernetes / Supervisor compatibles GPU (→ vmware-vks). vgpu_assign n'éteint pas la VM volontairement — c'est le travail de vmware-aiops, gardé séparé pour que le périmètre d'impact de ce skill reste « une VM, lorsqu'elle est déjà éteinte ».
Skills associés — Aiguillage
| L'utilisateur veut… | Skill |
|---|---|
| Inventorier les GPU / consommateurs vGPU / utilisation GPU / assigner un profil vGPU | vmware-privateai (ce skill) |
| Lister les modèles / bases de connaissances PAIS hébergés | vmware-privateai (ce skill) |
| Éteindre / instantanéer / cloner / migrer la VM vCenter sous-jacente | vmware-aiops |
| Inventaire vSphere en lecture seule / alarmes / santé de l'hôte | vmware-monitor |
| Clusters/espaces de noms Kubernetes Tanzu compatibles GPU | vmware-vks |
| Flux de travail GPU multi-étapes avec approbation + restauration | vmware-pilot |
Flux de travail courants
1. Trouver un GPU inactif et réaffecter le profil vGPU d'une VM.
vmware-privateai gpu device-list --vendor NVIDIA # trouver des GPU ; vm_count 0 = inactif
vmware-privateai gpu consumer-list # qui détient un vGPU, et quel profil
vmware-privateai vgpu profile-list --host esx-07 # profils que cet hôte peut attribuer à une VM
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c --dry-run # prévisualiser le périmètre d'impact
# éteindre la VM avec vmware-aiops, PUIS :
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c # double confirmation + audit
Branche d'échec : si vgpu-assign (confirmation) refuse avec « VM is powered on — a vGPU change needs the VM powered off », exécutez d'abord vmware-aiops vm_power_off 'fin-train-01', puis relancez. Si cela échoue avec « profile not offered by the VM's host / GPU lacks free framebuffer », exécutez vmware-privateai gpu host-get <nom de l'hôte de cette VM> pour voir les profils valides et la capacité libre.
2. Diagnostiquer l'utilisation GPU sur l'ensemble du parc.
vmware-privateai gpu utilization --top 10 # VMs vGPU les plus sollicitées d'abord
vmware-privateai gpu host-list --vendor NVIDIA # quels hôtes supportent la charge
Branche d'échec : une VM affichant « metrics unavailable (no host driver?) » n'est pas une erreur — le pilote GPU hôte NVIDIA n'expose pas de compteurs pour elle (metrics_available:false). La télémétrie approfondie par SM / par processus / par tranche MIG n'est pas disponible via vSphere ; utilisez NVIDIA DCGM sur l'hôte pour cela.
3. Voir ce que Private AI Service héberge.
vmware-privateai pais model-list # compatible OpenAI /models
vmware-privateai pais kb-list # bases de connaissances RAG
Branche d'échec : une erreur HTTP 404 signifie généralement une incohérence d'URL de base, pas un bogue — le préfixe de chemin PAIS /api/v1 est spécifique au déploiement et non confirmé (bêta). Vérifiez pais.endpoint dans config.yaml. HTTP 401/403 signifie que le jeton porteur dans VMWARE_PRIVATEAI_PAIS_TOKEN a expiré ou manque de portée — obtenez un nouveau jeton auprès de votre fournisseur d'identité, réexportez-le et réessayez.
Mode d'utilisation
- CLI — inventaire / diagnostic interactif, script, modèles petits ou locaux (coût de contexte réduit).
- MCP — opérations pilotées par agent avec JSON structuré ; exécutez
vmware-privateai mcp(un script console installé, donc pas de re-résolution réseauuvx— fonctionne via les proxys TLS d'entreprise, 踩坑 #25).
Outils MCP (17 — 16 lectures, 1 écriture)
| Catégorie | Outils | L/É |
|---|---|---|
| Inventaire GPU | gpu_host_list, gpu_host_get, gpu_device_list, gpu_consumer_list | Lecture |
| Utilisation GPU | gpu_utilization | Lecture |
| État GPU | gpu_host_readiness | Lecture |
| Catalogue de profils | vgpu_profile_list, directpath_profile_list | Lecture |
| Validation de profil | vgpu_profile_validate | Lecture |
| Private AI Service | pais_model_list, pais_model_catalog, pais_knowledge_base_list, pais_data_source_list | Lecture |
| Supervision PAIS | pais_monitoring_summary | Lecture |
| Dimensionnement et air-gap | pais_sizing_advise, pais_bundle_verify | Lecture |
| Affectation vGPU | vgpu_assign | Écriture |
Chemins PAIS INFÉRÉS : pais_model_catalog et pais_data_source_list accèdent à des plans de contrôle PAIS non confirmés sur une OpenAPI en direct (踩坑 #36) — une erreur 404 renvoie un message pédagogique sur l'URL de base, pas un bogue. pais_sizing_advise et pais_bundle_verify n'ont pas besoin de connexion (pur calcul / analyse de fichier local). gpu_host_readiness rapporte ce que l'API vSphere expose et l'indique lorsqu'elle ne peut pas le faire (pilote NVIDIA / VIB MFT / MIG nécessite nvidia-smi sur l'hôte).
Enveloppe de liste : chaque outil *_list renvoie {items, returned, limit, offset, total, truncated, hint} — lisez les lignes de items et vérifiez truncated avant de conclure qu'une liste est complète ; des items vides avec truncated:false signifie « vérifié et aucun », pas un échec. Les listes paginent à limit=50 ; filtrez avec les arguments name/vendor/host/profile/vm de l'outil plutôt que de paginer l'ensemble du parc.
Sécurité des écritures (normative) : vgpu_assign avec confirm=false (par défaut) ne fait que prévisualiser — profil actuel, profil cible, état d'alimentation et qu'une mise hors tension est nécessaire — sans agir. confirm=true applique la modification, mais refuse une VM allumée avec une erreur pédagogique. Il n'éteint jamais la VM lui-même, attend le résultat réel de la tâche ReconfigVM (jamais un « ok » prématuré) et enregistre chaque modification appliquée dans ~/.vmware/audit.db.
Référence rapide CLI
vmware-privateai gpu host-list [--name N] [--vendor V] # hôtes avec GPU
vmware-privateai gpu host-get <host> # détails complets par GPU
vmware-privateai gpu device-list [--host H] [--vendor V] # GPU physiques (vm_count 0 = inactif)
vmware-privateai gpu consumer-list [--profile P] [--vm V] # VMs détenant un vGPU + profil
vmware-privateai gpu utilization [--vm V] [--top N] # % GPU, % mémoire, température temps réel
vmware-privateai gpu vgpu-assign <vm> <profile> [--dry-run] # ÉCRITURE — VM doit être éteinte ; double confirmation
vmware-privateai gpu readiness [--host H] # verdict de préparation vGPU/PAIS par hôte
vmware-privateai vgpu profile-list [--host H] [--model M] # catalogue de profils vGPU
vmware-privateai vgpu directpath-list [--vendor V] # profils DirectPath (vSphere 9.0+)
vmware-privateai vgpu validate <vm> <profile> # pré-validation d'un changement de profil vGPU (lecture seule)
vmware-privateai pais model-list [--name N] # modèles hébergés PAIS
vmware-privateai pais model-catalog [--name N] # catalogue de modèles déployables/approuvés PAIS
vmware-privateai pais kb-list [--name N] # bases de connaissances PAIS
vmware-privateai pais data-source-list [--name N] # sources de données RAG PAIS
vmware-privateai pais monitoring-summary [--top N] # récapitulatif GPU de la flotte (util/mem/temp, chauds/inactifs)
vmware-privateai pais sizing --model llama-70b # dimensionnement GPU/stockage LLM (pas de connexion)
vmware-privateai pais bundle-verify <pais.yml> # inspecteur d'images air-gap local (pas de réseau)
Liste complète : references/cli-reference.md. Estimations de tokens par réponse : references/capabilities.md.
Dépannage
Password not found for target '<t>'. Set environment variable VMWARE_PRIVATEAI_<T>_PASSWORD— ajoutez cette ligne à~/.vmware-privateai/.envetchmod 600-le, ou exportez-la (depuis un gestionnaire de secrets). Le<T>est le nom de la cible en majuscules avec-→_.TLS verification failed for target '<t>'— pour un laboratoire à certificat auto-signé, définissezverify_ssl: falsepour cette cible dansconfig.yaml; sinon, installez le CA vCenter sur cet hôte.gpu host-listne retourne rien sur un cluster que vous savez équipé de GPU — seuls les types graphiquesshared/direct/sharedDirectcomptent comme GPU de calcul (le framebuffer hôte simple est exclu). Si du matériel 9.x réel fait apparaître un GPU sous un type inattendu, il s'agit d'une limitation connue bêta — ouvrez un problème avec la sortie brute degpu host-getafin que la projection puisse être élargie.gpu utilizationaffiche une VM avecmetrics unavailable— le pilote GPU hôte NVIDIA n'expose pas de compteurs pour elle (pas une erreur). Notez que les compteurs de performancegpu.*peuvent être rapportés au niveau de l'hôte sur certaines versions — vérifiez le type d'entité sur du matériel réel (avertissement bêta).directpath-listéchoue avec « needs vCenter 9.0+ » — DirectPathProfileManager est nouveau dans vSphere 9.0 ; sur 8.x, utilisezvgpu profile-listà la place (l'erreur vous y redirige, pas une liste vide).- Réponse PAIS 404 / non-JSON — le préfixe
/api/v1est spécifique au déploiement et non confirmé ; vérifiezpais.endpoint(un proxy ou une page de connexion renvoie du non-JSON). PAIS 401/403 → rafraîchissez le jeton porteur dansVMWARE_PRIVATEAI_PAIS_TOKEN.
Audit et sécurité
- Code source — https://github.com/vmware-skills/VMware-PrivateAI (MIT).
- Contenu du fichier de configuration —
config.yamlcontient uniquement l'hôte/nom d'utilisateur/port de la cible etpais.endpoint; les mots de passe et le jeton porteur PAIS résident dans~/.vmware-privateai/.env(0600, obscurcis enb64:au repos — obscurcissement, pas chiffrement). - Périmètre des données Webhook — aucun. Ce skill n'effectue aucun appel sortant sauf vers les cibles vCenter/ESXi configurées et le point de terminaison PAIS.
- Vérification TLS — activée par défaut ;
verify_ssl: falseest par cible (etpais.verify_ssl) et uniquement pour les laboratoires à certificats auto-signés. - Protection contre l'injection de prompts — tout texte fourni par vSphere ou PAIS (noms de dispositifs/fournisseurs/VM/profils, identifiants de modèles PAIS, descriptions de bases de connaissances) passe par
vmware_policy.sanitize()(troncature ≤500 caractères + suppression des caractères de contrôle C0/C1) ; une description de base de connaissances est la surface d'injection la plus sensible ici. - Moindre privilège — l'autorisation lecture vs écriture est le rôle du service vCenter : un compte de service en lecture seule refuse
vgpu_assign's ReconfigVM au niveau de vCenter, de manière incontournable. Toutes les écritures sont enregistrées dans~/.vmware/audit.db. Voirreferences/setup-guide.md.
Licence
MIT