VMware AIops
Avertissement : Ceci est un projet open-source maintenu par la communauté et n'est pas affilié, approuvé ou sponsorisé par VMware, Inc. ou Broadcom Inc. « VMware » et « vSphere » sont des marques commerciales de Broadcom. Le code source est publiquement auditable à github.com/vmware-skills/VMware-AIops sous la licence MIT.
Point d'entrée de la famille VMware — Cycle de vie des VM, déploiement et gestion des alarmes basés sur l'IA — 60 outils MCP.
Commencez ici : installez d'abord vmware-aiops, puis ajoutez les modules selon vos besoins. Exécutez
vmware-aiops hub statuspour voir quels membres de la famille sont installés. Famille : vmware-monitor (inventaire/santé), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-nsx (réseau NSX), vmware-nsx-security (DFW/pare-feu), vmware-aria (métriques/alertes/capacité), vmware-avi (AVI/ALB/AKO), vmware-harden (référentiels de conformité). | vmware-pilot (orchestration de workflows) | vmware-policy (audit/politique)
Fonction de cette compétence
| Catégorie | Outils | Nombre |
|---|---|---|
| Cycle de vie des VM | allumer/éteindre, créer, reconfigurer, cloner, migrer, supprimer, CRUD d'instantanés, suppression automatique TTL, nettoyage complet | 16 |
| Déploiement | OVA, modèle, clone lié, clonage/déploiement par lots | 8 |
| Opérations invitées | exécuter des commandes, télécharger/télécharger des fichiers, provisionner | 5 |
| Planifier/Appliquer | planification en plusieurs étapes avec restauration | 4 |
| Cluster | créer, supprimer, configurer HA/DRS, ajouter/supprimer des hôtes, règles DRS VM-VM (lister/créer/supprimer/activer-désactiver) | 10 |
| Datastore | parcourir les fichiers, rechercher des images | 2 |
| Réseau | lister/créer des portgroups dvSwitch, lister/ajouter/supprimer/tagger-service des VMkernel d'hôte, ping DF-bit MTU-path | 7 |
| Gestion des alarmes | lister les alarmes, accuser réception, réinitialiser | 3 |
| Triage et enquête (lecture seule, délégation à vmware-monitor) | résumé de santé du cluster en un coup d'œil, dossiers d'inspection centrés sur un objet (VM/hôte/datastore), résumé multi-vCenter « qu'est-ce qui nécessite une attention maintenant ? » | 5 |
Installation rapide
uv tool install vmware-aiops
vmware-aiops doctor
vmware-aiops hub status # voir quels membres de la famille sont installés
Famille VMware — Installez ce dont vous avez besoin
vmware-aiops est le point d'entrée. Ajoutez des modules pour des capacités supplémentaires :
| Module | Installation | Ajoute |
|---|---|---|
| vmware-monitor | uv tool install vmware-monitor | Inventaire, alarmes, événements en lecture seule |
| vmware-storage | uv tool install vmware-storage | iSCSI, vSAN, gestion des datastores |
| vmware-vks | uv tool install vmware-vks | Tanzu Kubernetes (vSphere 8.x+) |
| vmware-nsx | uv tool install vmware-nsx-mgmt | Réseau NSX : segments, passerelles, NAT |
| vmware-nsx-security | uv tool install vmware-nsx-security | Microsegmentation DFW, groupes de sécurité |
| vmware-aria | uv tool install vmware-aria | Métriques Aria Ops, alertes, capacité |
| vmware-avi | uv tool install vmware-avi | Équilibreur de charge AVI, ALB, AKO, Ingress |
Chaque module reste indépendant — un faible nombre d'outils maintient la précision des modèles locaux (Ollama, Qwen).
Quand utiliser cette compétence
- Allumer/éteindre, créer, supprimer, prendre un instantané, cloner ou migrer des VM
- Déployer des VM à partir d'OVA, de modèles, de clones liés ou de spécifications par lots
- Exécuter des commandes ou transférer des fichiers à l'intérieur d'une VM (opérations invitées)
- Créer/configurer des clusters (HA/DRS)
- Parcourir les datastores pour trouver des images déployables
- Planifier et exécuter des opérations en plusieurs étapes avec restauration
- Lister, accuser réception et effacer les alarmes déclenchées par vCenter (l'effacement correspond au type d'entité + statut — voir la section Outils MCP)
Utilisez les compétences complémentaires pour :
- Inventaire, santé, alarmes, informations VM →
vmware-monitor - iSCSI, vSAN, gestion des datastores →
vmware-storage - Tanzu Kubernetes (Supervisor, Namespace, TKC) →
vmware-vks - Équilibrage de charge, AVI/ALB, AKO, Ingress →
vmware-avi
Compétences associées — Routage des compétences
| Intention de l'utilisateur | Compétence recommandée |
|---|---|
| Surveillance en lecture seule, risque zéro | vmware-monitor (uv tool install vmware-monitor) |
| Stockage : iSCSI, vSAN, datastores | vmware-storage (uv tool install vmware-storage) |
| Cycle de vie des VM, déploiement, opérations invitées | vmware-aiops ← cette compétence |
| Tanzu Kubernetes (vSphere 8.x+) | vmware-vks (uv tool install vmware-vks) |
| Réseau NSX : segments, passerelles, NAT | vmware-nsx (uv tool install vmware-nsx-mgmt) |
| Sécurité NSX : règles DFW, groupes de sécurité | vmware-nsx-security (uv tool install vmware-nsx-security) |
| Aria Ops : métriques, alertes, capacité | vmware-aria (uv tool install vmware-aria) |
| Workflows en plusieurs étapes avec approbation | vmware-pilot |
| Référentiels de conformité (CIS / 等保 / PCI-DSS), détection de dérive, conseiller de correction IA LLM | vmware-harden (uv tool install vmware-harden) |
| Équilibreur de charge, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Requête de journal d'audit | vmware-policy (vmware-audit CLI) |
Flux de travail courants
Enquêtes diagnostiques : Avant de corriger un problème du type « pourquoi X est lent / en échec / en panne », suivez
references/investigation-protocol.md. Il applique les quatre critères d'exhaustivité de la cause première (falsifiabilité / suffisance / nécessité / mécanisme) et la boucle d'approfondissement d'un maximum de trois cycles. N'invoquez les outils d'écriture L3+ qu'après avoir satisfait aux quatre critères ET que l'utilisateur a approuvé un plan de correction.
Triage de la santé du cluster (« qu'est-ce qui ne va pas en ce moment ? »)
Commencez ici lorsque la question est « est-ce que quelque chose brûle ? » avant de plonger dans une VM spécifique. Ceci est un résumé en lecture seule délégué à vmware-monitor, exposé ici pour que le triage puis l'action restent dans une seule conversation.
- Un coup d'œil -->
cluster_health_summary(MCP) ouvmware-aiops summary(CLI). Liseztop_issuesen premier — anomalies classées (hôtes déconnectés, alarmes rouges/jaunes, pression sur la capacité), chacune avec un indice pour l'approfondissement ; le tableau par cluster fournit le contexte. - Agissez sur ce qui est révélé --> une ligne
host_down→ enquêter sur l'hôte ; une alarme →acknowledge_vcenter_alarm/reset_vcenter_alarm; une VM chaude impliquée →vm_migrateouvm_reconfigure(après le protocole d'enquête). - Sauvegardez/partagez un instantané -->
vmware-aiops summary --htmlécrit un fichier HTML hors ligne et horodaté (identique àvmware-monitor summary --html— même moteur de rendu partagé). - Si vmware-monitor n'est pas installé --> cette commande/outil n'est pas disponible (AIops délègue à celui-ci) ; installez
vmware-monitor, ou utilisez les outils de lecture plus approfondis de cette compétence.
Enquête centrée sur un objet → Agir (approfondir avant de modifier quoi que ce soit)
Jugement : après que le triage pointe vers un objet problématique, approfondissez avec une lecture corrélée avant d'agir — le dossier agrège l'objet avec son infrastructure environnante et son historique récent afin que vous (et l'opérateur) ayez une vue d'ensemble, pas une supposition. AIops est le point d'entrée conversationnel, donc le triage → l'enquête → l'action restent dans une seule conversation.
- À l'échelle du parc -->
cross_vcenter_attention(« qu'est-ce qui nécessite une attention maintenant ? » sur tous les vCenter). Un seul vCenter configuré → passez àcluster_health_summary. - Approfondissez l'objet signalé (proposez le niveau ; passez la question si elle est sans ambiguïté) :
- une VM -->
vm_investigation_bundle→ état, hôte sur lequel elle s'exécute, contexte du cluster, datastores de sauvegarde, instantanés, alarmes et modifications récentes, signaux de performance, chronologie des événements corrélés. - un hôte -->
host_investigation_bundle; un datastore -->datastore_investigation_bundle.
- une VM -->
- Ensuite agissez sur les preuves --> par exemple, le dossier montre une VM bloquée sur un hôte chaud →
vm_migrate; un datastore plein →vm_delete_snapshotsur les instantanés que le dossier a révélés. Suivez le protocole d'enquête avant toute action destructive. - Élargissez la fenêtre avec
hours=72; générez un instantané hors ligne avec--html(les sections de l'approfondissement se replient nativement, rien n'est téléchargé). - Si le nom de l'objet est inconnu --> le dossier renvoie une erreur pédagogique indiquant comment lister les objets ; obtenez le nom exact et réessayez. Si vmware-monitor n'est pas installé --> ces outils délégués ne sont pas disponibles.
Déployer un environnement de laboratoire
Pré-vol (jugement, pas une séquence aveugle) :
- Espace libre : le datastore cible doit avoir ≥ taille de l'OVA × 2 (fichiers delta + surcoût de provisionnement fin). Si plusieurs datastores sont qualifiés, préférez celui avec la pression IOPS actuelle la plus faible (vérifiez avec
vmware-ariasi disponible). - Hygiène des noms : préfixez avec la date ou le propriétaire (
lab-2026-04-30-alice) pour que la piste d'audit de nettoyage TTL soit significative. - TTL : toujours défini. 480 minutes pour une session de test unique, 7200 minutes pour un bac à sable d'une semaine. Ne déployez jamais une VM « laboratoire » sans TTL — c'est ainsi que les datastores se remplissent à 3 heures du matin.
- Moment de l'instantané : prenez l'instantané de base après la réussite du provisionnement, pas avant — un instantané pré-provisionnement n'est qu'un point de contrôle vide.
Étapes :
vmware-aiops datastore browse <ds> --pattern "*.ova"→ confirmer la présence de l'image et sa taille.vmware-aiops deploy ova <path> --name <date>-<owner>-<purpose> --datastore <ds>.vmware-aiops vm guest-exec <name> --cmd /usr/bin/python3 --args "setup.py" --user admin→ si le code de sortie ≠ 0, arrêtez-vous, ne prenez pas d'instantané d'une VM à moitié provisionnée.vmware-aiops vm snapshot-create <name> --name baseline(uniquement pour des tests multi- itérations ; passez pour un usage unique).vmware-aiops vm set-ttl <name> --minutes 480.
Clonage par lots pour les tests
Pré-vol :
- État de la VM source : éteinte est le plus sûr. Si allumée, VMware Tools doit être en cours d'exécution et capable de quiescence, sinon les clones peuvent avoir un état de disque incohérent.
- Calcul de capacité :
free_space ≥ source.size × count × 1.2(clone complet) ou≥ count × 2 GB(clone lié, delta uniquement). - Règle de décision : count > 10 → utiliser des clones liés (
deploy linked-clone) ; secondes vs minutes par clone, ~100× moins de stockage. Compromis : les clones liés dépendent de l'instantané source — la suppression de l'instantané casse tous les enfants. - Épuisement réseau : chaque clone obtient une adresse MAC unique du pool vSphere ; si vous créez un lot > 200, vérifiez la capacité du pool à l'avance.
- TTL : chaque clone doit en avoir un. Utilisez les métadonnées du plan pour suivre la propriété.
Étapes :
vm_create_planavec les étapes de clonage + reconfiguration + set-ttl regroupées par VM (atomique par clone).- Révisez le plan avec l'utilisateur — affichez le nombre, le datastore, les avertissements irréversibles.
vm_apply_plan— s'arrête à la première défaillance (intentionnel, ne reprend pas automatiquement).- En cas d'échec :
vm_rollback_plan→ annule les clones terminés ; vérifiez manuellement la restauration avant de réessayer.
Migrer une VM vers un autre hôte
Pré-vol (TOUT doit réussir avant d'émettre la migration) :
- Compatibilité CPU : la famille de CPU de l'hôte cible doit correspondre à la source, OU le cluster doit être en mode EVC. La migration à chaud entre des CPU incompatibles échoue en vol et peut laisser la VM stupéfaite.
- Parité réseau : chaque portgroup utilisé par la VM doit exister sur le vSwitch de l'hôte cible avec le même VLAN. Un portgroup manquant → des vNIC déconnectées après la migration.
- Visibilité du stockage : l'hôte cible doit voir tous les datastores de la VM ; sinon, il s'agit d'une Storage vMotion, pas d'une migration d'hôte — opération différente (plus lente).
- Règles d'affinité : si la VM est épinglée à la source par une règle d'affinité d'hôte DRS, la migration viole silencieusement l'intention. Vérifiez
cluster infod'abord. - Pass-through matériel : les VM avec pass-through PCI (GPU, USB) ne peuvent pas être migrées à chaud — planifiez une fenêtre de migration à froid.
Étapes :
- Vérifiez l'état de la VM et l'hôte actuel via
vmware-monitor vm info <name>. - Vérifiez l'hôte cible : même cluster, compatible EVC, dispose des réseaux/datastores requis.
vmware-aiops vm migrate <name> --to-host <target>— attendez la fin de la tâche, ne supposez pas le succès au retour.- Post-vérification :
vm infoconfirme le nouvel hôte ET l'état d'alimentation inchangé ET les vNIC connectées.
Mode d'utilisation
| Scénario | Recommandé | Pourquoi |
|---|---|---|
| Modèles locaux/petits (Ollama, Qwen) | CLI | ~2K tokens contre ~8K pour MCP |
| Modèles cloud (Claude, GPT-4o) | Les deux | MCP donne une E/S JSON structurée |
| Pipelines automatisés | MCP | Paramètres sûrs, sortie structurée |
Outils MCP (60 — 17 lectures, 43 écritures)
| Catégorie | Outils | L/E |
|---|---|---|
| Cycle de vie des VM (16) | vm_list_ttl, vm_list_snapshots, vm_task_status | Lecture |
vm_power_on, vm_power_off, vm_create, vm_reconfigure, vm_clone, vm_migrate, vm_delete, vm_create_snapshot, vm_revert_snapshot, vm_delete_snapshot, vm_set_ttl, vm_cancel_ttl, vm_clean_slate | Écriture | |
| Déploiement (8) | deploy_vm_from_ova, deploy_vm_from_template, deploy_linked_clone, attach_iso_to_vm, convert_vm_to_template, batch_clone_vms, batch_linked_clone_vms, batch_deploy_from_spec | Écriture |
| Opérations invitées (5) | vm_guest_exec, vm_guest_exec_output, vm_guest_upload, vm_guest_download, vm_guest_provision | Écriture |
| Planifier/Appliquer (4) | vm_list_plans | Lecture |
vm_create_plan, vm_apply_plan, vm_rollback_plan | Écriture | |
| Datastore (2) | browse_datastore, scan_datastore_images | Lecture |
| Réseau (7) | list_dvs_portgroups, list_host_vmks, vmk_ping | Lecture |
create_dvs_portgroup, add_host_vmk, remove_host_vmk, set_vmk_service | Écriture | |
| Cluster (10) | cluster_info, list_drs_rules | Lecture |
cluster_create, cluster_delete, cluster_add_host, cluster_remove_host, cluster_configure, set_drs_rule_enabled, create_drs_rule, delete_drs_rule | Écriture | |
| Gestion des alarmes (3) | list_vcenter_alarms | Lecture |
acknowledge_vcenter_alarm, reset_vcenter_alarm | Écriture | |
| Triage du cluster (1) | cluster_health_summary (délégation à vmware-monitor) | Lecture |
| Enquête sur les objets (4) | vm_investigation_bundle, host_investigation_bundle, datastore_investigation_bundle | Lecture |
cross_vcenter_attention | Lecture |
Chaque outil MCP correspond à une commande CLI. Pour les modèles locaux ou une interface directe, utilisez
vmware-aiops <command> --help. Note concernantreset_vcenter_alarm: La condition de correspondance par défaut est'Type d'entité' = 'VirtualMachine' AND 'Statut' = 'Rouge'. Pour modifier ce comportement, passez--entity-type(par défautVirtualMachine) et--status(par défautRouge). Les valeurs valides pour--statussontRouge,Jaune,Gris. Les valeurs valides pour--entity-typesont n'importe quel type d'objet de gestion VMware auquel une alarme peut être attachée.
Aide de la CLI
vmware-aiops --help
vmware-aiops <commande> --help
Installation via PyPI
pip install vmware-aiops
Dépendances logicielles
- Environnement d'exécution : Python 3.11+
- Cloud : un LLM (par exemple, Claude, GPT-4o) avec des capacités d'utilisation d'outils/CLI
- vSphere/vCenter : un endpoint vCenter accessible en réseau avec un compte disposant des privilèges appropriés (voir ci-dessous)
- Local : optionnellement, Ollama ou un autre exécuteur de modèle local. Exécutez
vmware-aiops doctorpour vérifier l'installation de votre LLM. - Système d'exploitation : macOS, Linux, Windows
- Options de déploiement : autonome (cette compétence), ou en tant que hub de la famille VMware
Privilèges requis de vCenter
| Action | Privilège vCenter requis |
|---|---|
| Lister les alarmes, état de santé, inventaire | Lecture seule (ou équivalent) |
| Accuser réception / réinitialiser une alarme | Alarmes.Accuser réception sur l'entité |
| Cycle de vie des VM (allumer/éteindre, créer, etc.) | Rôle administrateur ou privilèges de VM équivalents |
| Déploiement (OVA/modèle) | Rôle administrateur ou privilèges de déploiement équivalents |
| Opérations invitées (exécuter/télécharger) | Rôle administrateur ou invité équivalent |
| Gestion du cluster (HA/DRS) | Rôle administrateur au niveau du cluster |
| Gestion du datastore (parcourir) | Rôle administrateur ou consommateur de datastore |
| Gestion dvSwitch/VMkernel | Rôle administrateur réseau ou équivalent |
Recommandé : Utilisez un compte de service de domaine, pas un administrateur intégré. Attribuez les privilèges minimum requis.
Variables d'environnement
| Variable | Description | Défaut | Requise |
|---|---|---|---|
VSPHERE_HOST | Hôte vCenter (FQDN ou IP) | — | Oui |
VSPHERE_USER | Nom d'utilisateur vCenter | — | Oui |
VSPHERE_PASS | Mot de passe vCenter | — | Oui |
VSPHERE_VERIFY_SSL | Vérifier le certificat TLS vCenter | True | Non |
VMWARE_AI_DEFAULT_MODEL | Modèle LLM par défaut (par ex., claude-sonnet-4-20250514) | Défini à l'installation | Non |
VMWARE_AI_MODEL_PROVIDER | openai ou anthropic | anthropic | Non |
VMWARE_AI_API_KEY | Clé API LLM (si différente de celle définie par uv run) | Défaut de l'utilisateur | Non |
HUB_INSTALL_DIR | Répertoire pour vmware-aiops hub | ~/.vmware-aiops | Non |
Références
references/investigation-protocol.md— protocole d'enquête en quatre critèresreferences/conventions-de-nommage.md— conventions de nommage du projet