mcpField
V
vmware-aiops

vmware-aiops

github.com/vmware-skills云与 DevOps80273 次安装5 天前更新
代码仓库

关于 vmware-aiops

vmware-aiops 是用于管理 VMware 虚拟机生命周期、部署、集群、网络和告警的技能,面向 VMware 管理员及 Agent。它提供运营工具,并为写入操作加入防护、调查流程和审计记录。

主要功能

  1. 01虚拟机生命周期与快照
  2. 02OVA 和模板部署
  3. 03来宾命令与文件操作
  4. 04集群和网络管理
  5. 05告警处理与分诊
  6. 06写入预览和审计日志

适用场景

  1. 01克隆或迁移虚拟机
  2. 02部署带到期时间的实验虚拟机
  3. 03调查集群或虚拟机健康状况
  4. 04规划带回滚的多步骤变更

MCP 相关

它为 VMware 操作提供 61 个 MCP 工具。破坏性写入需要预览和确认,调用记录在本地审计数据库中。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vmware-skills/vmware-aiops --skill vmware-aiops

安装后在 Claude Code 中输入/vmware-aiops确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
agent-guardrails.md
capabilities.md
cli-reference.md
investigation-protocol.md
setup-guide.md

详细介绍

VMware AIops

免责声明:这是一个由社区维护的开源项目,与 VMware, Inc. 或 Broadcom Inc. 无关联、未获其认可,也未获其赞助。“VMware”和“vSphere”是 Broadcom 的商标。源代码根据 MIT 许可证公开,任何人都可审查,地址:github.com/vmware-skills/VMware-AIops。

VMware 系列入口——通过 AI 实现 VM 生命周期、部署和告警管理——提供 61 个 MCP 工具。

从这里开始:先安装 vmware-aiops,然后按需添加模块。 运行 vmware-aiops hub status,查看已安装的系列成员。 系列:vmware-monitor(清单/运行状况)、vmware-storage(iSCSI/vSAN)、vmware-vks(Tanzu Kubernetes)、vmware-nsx(NSX 网络)、vmware-nsx-security(DFW/防火墙)、vmware-aria(指标/告警/容量)、vmware-avi(AVI/ALB/AKO)、vmware-harden(合规基线)。 | vmware-pilot(工作流编排) | vmware-policy(审计/策略)

此技能的功能

类别工具数量
VM 生命周期开机/关机、创建、重新配置、克隆、迁移、删除、快照 CRUD、TTL 自动删除、清理16
部署OVA、模板、链接克隆、批量克隆/部署8
Guest 操作执行命令、上传/下载文件、预配5
计划/应用支持回滚的多步骤规划4
集群创建、删除、HA/DRS 配置、添加/移除主机、DRS VM-VM 规则(列出/创建/删除/启用-禁用)10
数据存储浏览文件、扫描镜像2
网络dvSwitch 端口组列表/创建、主机 VMkernel 列表/添加/移除/标记服务、DF-bit MTU 路径 ping7
告警管理列出告警、确认、重置3
分诊与调查(只读,委托给 vmware-monitor)一目了然的集群运行状况摘要、以对象为中心的 VM/主机/数据存储深入分析套件、跨 vCenter 的“当前需要关注什么?”5
访问权限当前使用的账户,以及该账户是否拥有每项工具所需的权限1

审计与安全

连接 Agent 前请先阅读。各工具清单:references/capabilities.md。

  • MCP 默认将写入操作限制为预览。 23 个写入工具——包括所有破坏性工具——除非设置 confirm=True,否则只会返回影响范围;遇到阻止条件或无法读取的测量值时,会拒绝确认。delete_vm 还要求提供与预览内容一致的 acknowledge_blast_radius。其余 20 个工具(创建、克隆、部署、开机、重新配置)会在首次调用时执行操作。
  • 强制执行边界由 vCenter/ESXi RBAC 决定:Agent 可以执行配置账户所能执行的任何操作。请使用专用的最小权限服务账户,并将权限范围限制在 Agent 可修改的对象内(只读角色会使此技能变为只读)。将密码存储在 ~/.vmware-aiops/.env(权限设为 0600)或密钥管理器中(VMWARE_<TARGET>_PASSWORD)。
  • 仅适用于 CLI:破坏性命令需要二次确认;大多数 CLI 写入操作支持 --dry-run。这两项均不适用于 MCP。
  • 策略:每次 MCP 和远程 CLI 调用前,都会检查 ~/.vmware/rules.yaml 中的拒绝规则和维护时段(例如,拒绝对 environment: production 目标执行写入操作)。随附的基线策略不会拒绝任何操作。这是进程内防护措施,不能替代 RBAC。
  • 审计:每次 MCP 调用都会记录在 ~/.vmware/audit.db 中,并对凭据进行脱敏(vmware-audit log --last 20)。审计尽力而为:审计写入失败时会发出警告,但不会阻止操作。
  • Guest 操作可运行任意命令或写入任意文件,只要 Guest 账户有相应权限——只读 vCenter 角色对此没有限制。必须指定 username(没有默认账户);通过 MCP 操作时,Agent 会看到作为工具参数传入的密码,因此请使用权限最小化的 Guest 账户。upload_vm_guest_file 会读取服务器有权读取的任何本地文件。

快速安装

uv tool install vmware-aiops==2.4.2
vmware-aiops doctor
vmware-aiops hub status   # see which family members are installed

VMware 系列——按需安装

vmware-aiops 是入口。添加模块以扩展功能:

模块安装新增功能
vmware-monitoruv tool install vmware-monitor只读清单、告警、事件
vmware-storageuv tool install vmware-storageiSCSI、vSAN、数据存储管理
vmware-vksuv tool install vmware-vksTanzu Kubernetes(vSphere 8.x+)
vmware-nsxuv tool install vmware-nsx-mgmtNSX 网络:网段、网关、NAT
vmware-nsx-securityuv tool install vmware-nsx-securityDFW 微分段、安全组
vmware-ariauv tool install vmware-ariaAria Ops 指标、警报、容量
vmware-aviuv tool install vmware-aviAVI 负载均衡器、ALB、AKO、Ingress

每个模块彼此独立——工具数量少有助于本地模型(Ollama、Qwen)准确运行。

何时使用此技能

  • 启动/关闭、创建、删除、创建快照、克隆或迁移 VM
  • 从 OVA、模板、链接克隆或批量规范部署 VM
  • 在 VM 内运行命令或传输文件(Guest Operations)
  • 创建/配置集群(HA/DRS)
  • 浏览数据存储中的可部署映像
  • 规划并执行带回滚的多步骤操作
  • 列出、确认和清除 vCenter 触发的告警(清除时按实体类型和状态匹配——请参阅 MCP Tools 部分)

以下场景请使用配套技能:

  • 清单、运行状况、告警、VM 信息 → vmware-monitor
  • iSCSI、vSAN、数据存储管理 → vmware-storage
  • Tanzu Kubernetes(Supervisor、Namespace、TKC)→ vmware-vks
  • 负载均衡、AVI/ALB、AKO、Ingress → vmware-avi

相关技能 — 技能路由

用户意图推荐技能
只读监控,零风险vmware-monitor(uv tool install vmware-monitor)
存储:iSCSI、vSAN、数据存储vmware-storage(uv tool install vmware-storage)
VM 生命周期、部署、来宾操作vmware-aiops ← 此技能
Tanzu Kubernetes(vSphere 8.x+)vmware-vks(uv tool install vmware-vks)
NSX 网络:网段、网关、NATvmware-nsx(uv tool install vmware-nsx-mgmt)
NSX 安全:DFW 规则、安全组vmware-nsx-security(uv tool install vmware-nsx-security)
Aria Ops:指标、告警、容量vmware-aria(uv tool install vmware-aria)
需要审批的多步骤工作流vmware-pilot
合规基线(CIS / 等保 / PCI-DSS)、偏移检测、LLM 修复建议vmware-harden(uv tool install vmware-harden)
负载均衡器、AVI、ALB、AKO、Ingressvmware-avi(uv tool install vmware-avi)
审计日志查询vmware-policy(vmware-audit CLI)

常见工作流

诊断调查:在修复任何“为什么 X 变慢 / 失败 / 宕机”的问题之前,请遵循 references/investigation-protocol.md。该协议要求满足四项根因完整性标准,并进行深入调查循环。只有在满足这四项标准且用户已批准修复计划后,才能调用 L3+ 写入工具。

集群健康排查(“当前出了什么问题?”)

当用户询问“现在有没有紧急故障?”时,从这里开始,然后再深入调查具体 VM。这是委托给 vmware-monitor 的只读汇总结果;此处将其开放出来,以便在一次对话中完成排查后采取行动。

  1. 一目了然 --> get_cluster_health_summary(MCP)或 vmware-aiops summary(CLI)。先查看 top_issues——按优先级排列的异常(主机断开连接、红色 / 黄色告警、容量压力),每项都附有深入排查提示;集群明细表用于提供背景信息
  2. 根据结果采取行动 --> host_down 行表示调查该主机;告警表示调用 acknowledge_vcenter_alarm / reset_vcenter_alarm;若某个繁忙 VM 是问题原因,则调用 migrate_vm 或 reconfigure_vm(遵循调查协议后)
  3. 保存 / 分享快照 --> vmware-aiops summary --html 会写入一个可离线查看、带时间戳的 HTML 文件(使用与 vmware-monitor 相同的渲染器)
  4. 如果未安装 vmware-monitor --> 此命令 / 工具不可用(AIops 将操作委托给它);请安装 vmware-monitor,或使用该技能中针对更深入对象读取的工具
以对象为中心的调查 → 操作(先深入排查,再做任何更改)

判断:分诊定位到问题对象后,先进行一次关联读取,再执行操作——该信息包会将对象与其周边基础设施和近期历史汇总在一起,让你(和操作员)看到全貌,而非凭猜测行事。AIops 是对话式入口,因此分诊 → 调查 → 操作始终在同一段对话中进行。

  1. 全局范围 --> get_cross_vcenter_attention(查询所有 vCenter 中“现在有哪些事项需要关注?”)。只配置了一个 vCenter → 跳转到 get_cluster_health_summary
  2. 深入检查标记出的对象(提供层级选项;如果对象明确,则跳过提问):
    • VM --> investigate_vm → 状态、运行所在的主机、集群上下文、后备数据存储、快照、警报与近期更改、性能信号、关联的事件时间线
    • 主机 --> investigate_host;数据存储 --> investigate_datastore
  3. 然后根据证据采取操作 --> 例如,信息包显示一台卡住的 VM 位于负载过高的主机上 → migrate_vm;数据存储已满 → 对信息包发现的大量冗余快照执行 delete_vm_snapshot。执行任何破坏性操作前,遵循调查协议
  4. 使用 hours=72 扩大时间范围;使用 --html 渲染离线快照(深入排查部分会原生折叠,不会上传任何内容)
  5. 如果对象名称未知 --> 信息包会返回一条说明如何列出对象的教学式错误;获取准确名称后重试。如果未安装 vmware-monitor --> 这些委派工具不可用
部署实验室环境

预检(基于判断,而非盲目按序执行):

  • 可用空间:目标数据存储的剩余空间必须 ≥ OVA 大小 × 2(用于差异文件和精简置备开销)。
  • 命名规范:使用日期或所有者作为前缀(lab-2026-04-30-alice),以便 TTL 清理审计记录清晰明了。
  • TTL:始终设置。单次测试会话设为 480 分钟,为期一周的沙盒设为 7200 分钟。绝不要部署未设置 TTL 的“实验室”VM——这会导致数据存储在凌晨 3 点被占满。
  • 快照时机:在配置成功后创建基线快照,而不是之前——预配置快照只是一个空检查点。

步骤:

  1. vmware-aiops datastore browse <ds> --pattern "*.ova" → 确认映像存在及其大小
  2. vmware-aiops deploy ova <path> --name <date>-<owner>-<purpose> --datastore <ds>
  3. vmware-aiops vm guest-exec <name> --cmd /usr/bin/python3 --args "setup.py" --user admin → 如果退出码 ≠ 0,停止,不要对尚未完成配置的 VM 创建快照
  4. vmware-aiops vm snapshot-create <name> --name baseline(仅在进行多轮迭代测试时执行;一次性测试则跳过)
  5. vmware-aiops vm set-ttl <name> --minutes 480
批量克隆用于测试

预检:

  • 源 VM 状态:关机最安全。如果 VM 已开机,必须运行 VMware Tools 且支持静默操作,否则克隆可能会有不一致的磁盘状态。
  • 容量计算:free_space ≥ source.size × count × 1.2(完整克隆),或 ≥ count × 2 GB(链接克隆,仅存储差异数据)。
  • 决策规则:数量 > 10 → 使用链接克隆(deploy linked-clone);每个克隆耗时从数分钟降至数秒,存储空间约减少 100 倍。权衡:链接克隆依赖源快照——删除该快照会导致所有子克隆失效。
  • 网络:批量克隆数 > 200 时,可能耗尽 vSphere MAC 地址池。
  • TTL:每个克隆都必须设置 TTL。使用计划中的元数据跟踪所有权。
  • 权限:get_access_info(tool="clone_vm")(CLI:vmware-aiops access-info --tool clone_vm)——仅限根文件夹;undetermined 不代表已授权。

步骤:

  1. 使用 create_vm_plan,按 VM 分别将克隆、重新配置和设置 TTL 的步骤分组(每个克隆单独作为原子操作)
  2. 与用户一起审查计划——说明数量、数据存储和不可逆操作警告
  3. 执行 apply_vm_plan——首次失败时即停止(这是有意设计的,不要自动恢复执行)
  4. 失败时:执行 rollback_vm_plan → 撤销已完成的克隆;重试前手动确认回滚成功
将 VM 迁移到另一台主机

迁移前检查(执行迁移前必须全部通过):

  • CPU 兼容性:目标主机的 CPU 系列必须与源主机相同,或者集群必须处于 EVC 模式。跨不匹配的 CPU 进行实时迁移会在迁移过程中失败,并可能导致 VM 陷入停滞状态。
  • 网络一致性:VM 使用的每个端口组都必须存在于目标主机的 vSwitch 上,且 VLAN 相同。缺少端口组 → 迁移后 vNIC 将断开连接。
  • 存储可见性:目标主机必须能够访问 VM 的所有数据存储;否则,这属于 Storage vMotion,而非主机迁移——这是另一种操作(速度更慢)。
  • 关联性规则:如果 DRS 主机关联性规则将 VM 固定在源主机上,迁移会悄然违背预期。先检查 cluster info。
  • 硬件直通:带有 PCI 直通(GPU、USB)的 VM 无法实时迁移——请安排冷迁移时段。

步骤:

  1. 通过 vmware-monitor vm info <name> 验证 VM 状态和当前主机
  2. 验证目标主机:位于同一集群、EVC 兼容,并具有所需网络和数据存储
  3. 执行 vmware-aiops vm migrate <name> --to-host <target>——等待任务完成;命令返回并不代表操作成功
  4. 迁移后检查:vm info 确认主机已更换、开机状态未改变且 vNIC 已连接

使用模式

场景推荐方式原因
本地/小型模型(Ollama、Qwen)CLI约 2K 个 token,而 MCP 约需 8K 个
云端模型(Claude、GPT-4o)两者皆可MCP 可提供结构化 JSON 输入/输出
自动化流水线MCP类型安全的参数、结构化输出

MCP 工具(61 个——18 个读取,43 个写入)

类别工具读/写
VM 生命周期(16 个)list_vm_ttls、list_vm_snapshots、get_vm_task_status读取
power_on_vm、power_off_vm、create_vm、reconfigure_vm、clone_vm、migrate_vm、delete_vm、create_vm_snapshot、revert_vm_snapshot、delete_vm_snapshot、set_vm_ttl、cancel_vm_ttl、restore_vm_clean_slate写入
部署(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写入
客户机操作(5 个)run_vm_guest_command、run_vm_guest_command_with_output、upload_vm_guest_file、download_vm_guest_file、provision_vm_guest写入
计划/应用(4 个)list_vm_plans读取
create_vm_plan、apply_vm_plan、rollback_vm_plan写入
数据存储(2 个)browse_datastore、scan_all_datastore_images读取
网络(7 个)list_dvs_portgroups、list_host_vmks、ping_from_vmk读取
create_dvs_portgroup、add_host_vmk、remove_host_vmk、set_vmk_service写入
集群(10 个)get_cluster_info、list_drs_rules读取
create_cluster、delete_cluster、add_cluster_host、remove_cluster_host、configure_cluster、set_drs_rule_enabled、create_drs_rule、delete_drs_rule写入
告警管理(3 个)list_vcenter_alarms读取
acknowledge_vcenter_alarm、reset_vcenter_alarm写入
集群诊断(1 个)get_cluster_health_summary(委托给 vmware-monitor)读取
对象调查(4 个)investigate_vm、investigate_host、investigate_datastore、get_cross_vcenter_attention(均委托给 vmware-monitor)读取
访问(1 个)get_access_info读取

列表封装:读取类列表工具——browse_datastore、list_vcenter_alarms、list_vm_plans、list_vm_snapshots、list_vm_ttls——返回 {items, returned, limit, total, truncated, hint},而非裸数组。从 items 读取行,并在认定列表完整前检查 truncated;items 为空且 truncated: false 表示已检查且无结果,并非失败。写入类 batch_* 工具仍返回裸列表(其结果天然完整)。有关原因、total 的语义和错误格式,请参阅 references/capabilities.md。 读写分离:18 个工具为只读工具(由 [READ] 文档字符串标记),43 个工具会修改状态 — 在 审计与安全 中进行限制。set_vm_ttl 会安排无人值守的自动删除。

网络写入限制:所有四种网络写入操作都需要预览/确认 — confirm=False(默认值)会返回确切的规格,但不会写入。remove_host_vmk 采用故障关闭策略:如果某个 vmk 被选用于主机服务(管理/vMotion/vSAN)、位于非默认网络栈(NSX TEP、专用 vMotion 网络栈)、携带默认网关路由,或无法验证其中任一情况,操作都会被拒绝 — 传入 force_unprotected=True 可覆盖非绝对保护。主机唯一启用了管理功能的 vmk 永远不可移除(无覆盖选项)。set_vmk_service 也采用故障关闭策略:如果无法读取主机的服务映射,则会拒绝两个方向的操作;如果要从主机唯一启用了管理功能的 vmk 上取消标记 management,也会拒绝操作(无覆盖选项)— 此调用依赖于它要取消标记的接口。

DRS 规则限制:set_drs_rule_enabled、create_drs_rule、delete_drs_rule 需要预览/确认,并且具备幂等性(状态匹配时会返回不写入的空操作)。create_drs_rule 仅处理 VM-VM 关联/反关联规则(至少 2 个不同的 VM,且都属于该集群);可通过 list_drs_rules 读取 VM-Host 规则,但需在 vSphere UI 中管理。delete_drs_rule 拒绝非 VM-VM 规则(这些规则可能包含许可/合规性放置约束),并会在预览和结果中记录完整规则定义,以便在误删时从审计记录中重新创建。

重置警报的影响范围:vSphere 没有针对单个警报的清除 API。reset_vcenter_alarm 使用 AlarmManager.ClearTriggeredAlarms,会清除所有与指定警报的实体类型(主机/VM/全部)和当前状态(红色/黄色)匹配的已触发警报 — 不只是指定的那个。直接调用 MCP 时会预览将要清除的所有警报(blast_radius.will_clear);设置 confirm=True 后会清除警报,并由 scope 报告范围。名称拼写错误会立即失败,不会清除任何内容。

CLI 快速参考

# VM operations
vmware-aiops vm power-on <name> [--target <t>]
vmware-aiops vm power-off <name> [--force]
vmware-aiops vm create <name> --cpu 4 --memory 8192 --disk 100
vmware-aiops vm delete <name>
vmware-aiops vm clone <name> --new-name <new> [--to-host <host>] [--to-datastore <ds>] [--power-on]
vmware-aiops vm migrate <name> --to-host <host> [--to-datastore <ds>]
vmware-aiops vm snapshot-create <name> --name <snap> [--description <text>] [--memory]
vmware-aiops vm snapshot-list <name>
vmware-aiops vm snapshot-revert <name> --name <snap>
vmware-aiops vm snapshot-delete <name> --name <snap> [--remove-children] [--no-wait]
vmware-aiops vm task-status <task-id>                      # poll an async (--no-wait) operation by id
vmware-aiops vm set-ttl <name> --minutes 480 [--dry-run]   # double confirm; daemon auto-deletes VM on expiry

# Guest operations (requires VMware Tools)
vmware-aiops vm guest-exec <name> --cmd <script-path> --args "<args>" --user <username>
vmware-aiops vm guest-upload <name> --local ./script.sh --guest /tmp/script.sh --user <username>

# Deploy
vmware-aiops deploy ova <path> --name <vm> --datastore <ds>
vmware-aiops deploy linked-clone --source <vm> --snapshot <snap> --name <new>

# Cluster
vmware-aiops cluster create <name> --ha --drs
vmware-aiops cluster info <name>
vmware-aiops cluster drs-rules <name>                                     # list DRS rules
vmware-aiops cluster drs-rule-set <name> --rule <r> --enable|--disable [--dry-run]
vmware-aiops cluster drs-rule-create <name> --rule <r> --type antiAffinity --vm <vm1> --vm <vm2> [--disabled] [--dry-run]
vmware-aiops cluster drs-rule-delete <name> --rule <r> [--dry-run]        # VM-VM only; double confirm

# Datastore
vmware-aiops datastore browse <ds> --pattern "*.ova"

# Alarm management
vmware-aiops alarm list [--target <t>]
vmware-aiops alarm acknowledge <entity_name> <alarm_name> [--target <t>]
vmware-aiops alarm reset <entity_name> <alarm_name> [--target <t>]   # double confirm; see blast radius above

# Family
vmware-aiops hub status        # show installed family members + install commands

完整 CLI 参考:请参阅 references/cli-reference.md

故障排查

出现“找不到 VM”错误

vSphere 中的 VM 名称区分大小写。请使用 vmware-monitor inventory vms 中的准确名称。

客户机执行返回空输出

请使用 run_vm_guest_command_with_output,而不是 run_vm_guest_command — 前者会自动捕获 stdout/stderr。基本的 run_vm_guest_command 只返回退出代码。

部署 OVA 超时

大型 OVA 文件(>10GB)可能超过默认的 120s 超时。上传通过 HTTP NFC 租约进行 — 请确保运行 vmware-aiops 的机器与 ESXi 之间的网络稳定。

删除快照很慢/“运行 Ns 后仍在运行”

删除大型快照时会合并其差异磁盘,通常需要几分钟。vm snapshot-delete 最多等待 30 min;出现“仍在运行,并非失败”并带有任务 ID 的消息,表示删除并未失败 — 请轮询 vm task-status <task-id>;不要重新执行。对于大型快照,请使用 vm snapshot-delete <name> --name <snap> --no-wait 并轮询。

应用计划时中途失败

运行 vmware-aiops plan list 查看失败的计划状态。询问用户是否要使用 rollback_vm_plan 回滚。回滚期间会跳过不可逆步骤(delete_vm)。

连接被拒绝/SSL 错误
  1. 验证目标是否可访问:vmware-aiops doctor
  2. 对于自签名证书:在 config.yaml 中设置 verify_ssl: false(仅限实验室环境)
每条命令都因“会话未通过身份验证”而失败

该账户没有 vSphere 角色。请在 vCenter 根文件夹上为其分配一个角色(只读或更高权限);vmware-aiops doctor 会明确报告此情况。

设置

uv tool install vmware-aiops==2.4.2
mkdir -p ~/.vmware-aiops
vmware-aiops init  # generates config.yaml and .env templates
chmod 600 ~/.vmware-aiops/.env

完整设置指南、安全详情和 AI 平台兼容性:请参阅 references/setup-guide.md

许可证

MIT — github.com/vmware-skills/VMware-AIops

评论

支持 Markdown