Communitygithub.com

vmware-skills/VMware-VDI

Opérations intelligentes pour VMware/Omnissa Horizon VDI — Serveur MCP + CLI (Famille de compétences VMware)

Qu'est-ce que VMware-VDI ?

Cette compétence fournit un ensemble complet d'outils MCP (27 au total : 16 en lecture seule et 11 en écriture) pour interagir avec la couche broker VMware Horizon / Omnissa VDI. Elle permet de gérer les pools de postes de travail, les farms RDS, les sessions utilisateur (déconnexion, message, déconnexion forcée), les machines de bureau, les droits d'accès, les événements, la santé et les statistiques, ainsi que les opérations de poussée d'image instant-clone. La compétence utilise l'API REST du serveur de connexion Horizon 8 (compatible avec la dernière version Omnissa Horizon) et est conçue pour fonctionner à la fois en mode CLI (pour les tâches interactives et les scripts) et en mode MCP (pour les opérations pilotées par un agent, avec sortie structurée). Elle met l'accent sur la sécurité avec un contrôle strict des actions destructrices (double confirmation, mode `--dry-run`), un journal d'audit pour toutes les écritures, et une protection contre les injections de prompt. Les opérations sont déléguées au rôle du compte administrateur Horizon. Cette compétence est idéale pour le support help-desk, les cycles de maintenance (poussée d'image), l'intégration de nouveaux utilisateurs et la supervision en temps réel de l'infrastructure VDI.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add vmware-skills/VMware-VDI

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

VDI VMware (Horizon)

Avertissement : Projet open-source maintenu par la communauté, non affilié, approuvé ou parrainé par VMware, Inc., Broadcom Inc. ou Omnissa, LLC. « VMware », « Horizon » et « Omnissa » sont des marques déposées de leurs propriétaires respectifs. La source est publiquement vérifiable sous licence MIT.

Opérations intelligentes pour Horizon VDI de la famille de compétences VMware — pools de postes de travail, farms RDS, sessions utilisateur, machines de bureau, droits d'accès, événements/santé/statistiques et poussée d'image instant-clone, via l'API REST du serveur de connexion Horizon 8 (principal ; cible également la dernière version Omnissa Horizon, qui partage la même lignée d'API /rest/v1).

Compétences associées : vmware-aiops (les VM vCenter qui hébergent les postes de travail), vmware-monitor (vSphere en lecture seule), vmware-nsx-security (microsegmentation des postes de travail).

Statut : v1.0.0 (bêta). Les points d'accès sont vérifiés par rapport à l'API officielle du serveur Horizon ; les projections de champs de réponse GET sont défensives et en attente de validation sur un serveur de connexion réel (exécutez vmware-vdi init sur un Horizon réel une fois pour confirmer). Régies par le harnais de la famille (audit + politique + erreurs d'enseignement) ; l'autorisation est déléguée au rôle du compte administrateur Horizon.

Ce Que Fait Cette Compétence

CatégorieOutilsNombreLecture/Écriture
Supervisionrésumé santé, liste/obtenir session, liste/obtenir machine, liste événements66 R
Statistiquesstats de concurrence des sessions, utilisation par pool22 R
Gestionliste/obtenir pool, liste farm, liste pool d'applications, liste droits, liste images, recherche AD ; activer/désactiver pool, ajouter/supprimer droits97 R / 2 W
Actions Opsdéconnexion/déconnexion forcée/message session, réinitialisation/maintenance/suppression machine66 W
Tâchesstatut tâche ; poussée image, annulation tâche31 R / 2 W

27 outils MCP (16 lecture / 11 écriture). Les lectures sont strictement non destructrices. Les écritures prévisualisent leur périmètre d'impact, sont doublement confirmées en CLI et sont enregistrées dans le journal d'audit.

Installation Rapide

uv tool install vmware-vdi
vmware-vdi init      # configuration conviviale : connexion à un serveur de connexion + découverte de vos pools
vmware-vdi doctor    # vérifier la configuration / les identifiants / la connectivité

Quand Utiliser Cette Compétence

Utilisez vmware-vdi pour la couche broker Horizon : pools de postes de travail, farms RDS, applications publiées, sessions utilisateur (déconnexion/déconnexion forcée/message), état des machines de bureau (réinitialisation/maintenance/suppression), droits d'accès, événements/santé/statistiques Horizon, et poussée d'image instant-clone — lorsque le contexte est explicitement Horizon / Omnissa / VDI / pool-de-postes-de-travail / farm-RDS.

N'UTILISEZ PAS lorsque : la tâche concerne la VM vCenter sous-jacente (alimentation/instantané/clonage/migration → vmware-aiops), l'inventaire/les alarmes vSphere en lecture seule (→ vmware-monitor), ou la microsegmentation NSX des postes de travail (→ vmware-nsx-security). La VM de soutien d'un poste de travail Horizon relève d'aiops ; la session/pool/broker relève de vdi.

Compétences Connexes — Routage des Compétences

L'utilisateur veut…Compétence
Déconnecter/réinitialiser/ré-imager un poste de travail ou une session Horizonvmware-vdi (ceci)
Alimentation/instantané/clonage/migration de la VM de soutien vCentervmware-aiops
Inventaire/alarmes/santé de l'hôte vSphere en lecture seulevmware-monitor
Microsegmenter le réseau du pool de postes de travailvmware-nsx-security
Workflow VDI multi-étapes avec approbation + restaurationvmware-pilot

Workflows Courants

1. Help-desk : le poste de travail d'un utilisateur est bloqué.

vmware-vdi session list --user alice          # trouver sa session + son état
vmware-vdi machine list --state AGENT_UNREACHABLE   # le poste de travail est-il cassé ?
vmware-vdi session logoff --user alice --dry-run    # prévisualiser le périmètre d'impact (quelles sessions)
vmware-vdi session logoff --user alice        # double confirmation, puis déconnexion + audit

Branche d'échec : si session list renvoie une erreur 404/auth d'enseignement, exécutez vmware-vdi doctor — un rôle Horizon en lecture seule suffit pour les lectures mais le compte doit pouvoir atteindre le serveur de connexion.

2. Nuit de correctifs : pousser une nouvelle image dorée vers un pool.

vmware-vdi image list                         # trouver la VM de base + l'instantané
vmware-vdi pool push-image --id pool-fin --dry-run   # PÉRIMÈTRE D'IMPACT : N postes de travail, M utilisateurs connectés
vmware-vdi pool set-enabled --id pool-fin --disable  # optionnel : arrêter les nouvelles connexions d'abord
vmware-vdi pool push-image --id pool-fin      # double confirmation ; renvoie une tâche
vmware-vdi task status --pool pool-fin         # suivre la progression

Branche d'échec : si l'aperçu montre des utilisateurs connectés que vous n'attendiez pas, session send-message --user … pour les avertir, ou poussez avec --force-logoff seulement après avoir confirmé l'impact.

3. Intégrer un groupe à un pool.

vmware-vdi ad-search "Finance"                # résoudre le groupe AD → son SID
vmware-vdi entitlement add --pool pool-fin --sid <SID>
vmware-vdi entitlement list --pool pool-fin   # vérifier

Branche d'échec : ad-search qui ne retourne rien signifie généralement que le domaine dans ~/.vmware-vdi/config.yaml est faux — réexécutez vmware-vdi init --force.

Mode d'Utilisation

  • CLI — travail interactif help-desk, script, petits modèles locaux (coût de contexte réduit).
  • MCP — opérations pilotées par agent avec sortie structurée ; exécutez vmware-vdi mcp (un script console installé, donc pas de re-résolution réseau uvx — fonctionne via les proxies TLS d'entreprise).

Outils MCP (27 — 16 lecture, 11 écriture)

CatégorieOutilsL/E
Supervisionhealth_summary, session_list, session_get, machine_list, machine_get, event_listLecture
Statistiquessession_stats, pool_utilizationLecture
Gestion (lecture)pool_list, pool_get, farm_list, app_pool_list, entitlement_list, image_list, ad_user_searchLecture
Tâches (lecture)task_statusLecture
Actions Opssession_logoff, session_disconnect, session_send_message, machine_reset, machine_maintenance, machine_removeÉcriture
Gestion (écriture)pool_set_enabled, entitlement_add, entitlement_removeÉcriture
Tâches (écriture)pool_push_image, task_cancelÉcriture

Enveloppe de liste : chaque outil *_list renvoie {items, returned, limit, total, truncated, hint} — lisez les lignes de items et vérifiez truncated avant de conclure qu'une liste est complète ; items vides avec truncated:false signifie vérifié-et-rien, pas un échec. Les listes sont récupérées avec une pagination côté serveur.

Périmètre d'impact (normatif) : pool_push_image recrée chaque poste de travail dans le pool — le plus grand périmètre d'impact en un seul appel de la famille. Son aperçu indique les nombres de postes de travail affectés et d'utilisateurs en session avant toute confirmation. session_logoff / machine_reset / machine_remove indiquent leurs utilisateurs/machines affectés et exigent une double confirmation en CLI.

Séparation lecture/écriture : 16 outils en lecture seule (marqueur [READ] dans la docstring), 11 modifient l'état. Toutes les écritures sont enregistrées dans le journal d'audit ; les écritures destructrices (session_logoff, machine_reset, machine_remove, pool_set_enabled désactivation, entitlement_remove, pool_push_image, task_cancel) nécessitent une double confirmation en CLI et supportent --dry-run.

Référence Rapide CLI

vmware-vdi init                                          # configuration conviviale + découverte des pools
vmware-vdi health                                        # santé VDI en un coup d'œil
vmware-vdi stats                                         # statistiques de concurrence des sessions
vmware-vdi utilization                                   # utilisation des postes de travail par pool
vmware-vdi session list [--user U] [--pool P] [--state CONNECTED]
vmware-vdi session logoff --user U [--dry-run]           # double confirmation
vmware-vdi machine list [--pool P] [--state AGENT_UNREACHABLE]
vmware-vdi machine reset --id M [--dry-run]              # réinitialisation matérielle ; double confirmation
vmware-vdi machine maintenance --id M --enter|--exit
vmware-vdi pool list
vmware-vdi pool set-enabled --id P --enable|--disable
vmware-vdi pool push-image --id P [--force-logoff] [--dry-run]   # périmètre d'impact le plus élevé
vmware-vdi task status --pool P [--task T]
vmware-vdi ad-search "<nom>"                            # résoudre le SID AD pour les droits
vmware-vdi entitlement add|remove --pool P --sid <SID>

Liste complète : references/cli-reference.md.

Dépannage

  • Mot de passe non trouvé. Définissez la variable d'environnement : VMWARE_VDI_<TARGET>_PASSWORD — exécutez vmware-vdi init (écrit ~/.vmware-vdi/.env, 0600), ou exportez la variable manuellement.
  • Échec de connexion (HTTP 401/400) — vérifiez username/domain dans ~/.vmware-vdi/config.yaml ; Horizon authentifie par rapport au domain AD. Un administrateur local du serveur de connexion laisse domain vide.
  • le certificat n'a pas pu être vérifié — pour un certificat de laboratoire auto-signé, définissez verify_ssl: false pour cette cible dans la configuration.
  • Une écriture est refusée avec « rôle en lecture seule » — c'est le RBAC qui fonctionne comme conçu. Pointez la cible vers un rôle administrateur Horizon avec privilège d'écriture, ou conservez le compte en lecture seule pour les commandes de lecture uniquement.
  • session list --pool ou un aperçu de poussée d'image affiche 0 là où vous attendez des utilisateurs — sur votre version d'Horizon, un nom de champ peut différer ; il s'agit d'une limitation connue de la version bêta, veuillez soumettre un problème avec la sortie brute de session_get afin que la projection puisse être corrigée.

Audit & Sécurité

  1. Code Source — https://github.com/vmware-skills/VMware-VDI (MIT).
  2. Contenu du Fichier de Configuration — config.yaml contient uniquement l'hôte/nom d'utilisateur/domaine ; les mots de passe résident dans ~/.vmware-vdi/.env (0600, obscurcis en b64: au repos — obscurcissement, pas chiffrement).
  3. Portée des Données Webhook — aucune. Cette compétence n'effectue aucun appel sortant autre que vers le serveur de connexion configuré.
  4. Vérification TLS — activée par défaut ; verify_ssl: false est par cible et uniquement pour les laboratoires auto-signés.
  5. Protection contre l'Injection de Prompt — tout le texte fourni par le serveur de connexion (noms d'utilisateur, noms de machine/pool, messages d'événement) passe par vmware_policy.sanitize() (troncature + suppression des caractères de contrôle).
  6. Moindre Privilège — l'autorisation est le travail du compte Horizon : un rôle administrateur Horizon en lecture seule refuse toute écriture au niveau du serveur de connexion, de manière incontournable. Toutes les écritures sont enregistrées dans ~/.vmware/audit.db. Voir references/setup-guide.md.

Licence

MIT

Skills associés