{"id":47201254,"url":"https://github.com/zw008/VMware-AIops","last_synced_at":"2026-04-22T10:00:45.298Z","repository":{"id":340503641,"uuid":"1166341463","full_name":"zw008/VMware-AIops","owner":"zw008","description":"VMware vCenter/ESXi AI-powered monitoring and operations. Two skills: vmware-monitor (read-only, safe) and vmware-aiops (full operations) | Claude Code Skill","archived":false,"fork":false,"pushed_at":"2026-04-21T06:21:42.000Z","size":842,"stargazers_count":38,"open_issues_count":1,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-21T08:41:05.985Z","etag":null,"topics":["agent-skills","ai-skill","aiops","automation","claude-code","codex","devops","esxi","gemini-cli","homelab","infrastructure","mcp","monitoring","pyvmomi","read-only-monitoring","vcenter","vm-lifecycle","vmware","vsphere"],"latest_commit_sha":null,"homepage":"https://skills.sh/zw008/VMware-AIops","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zw008.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-25T05:50:24.000Z","updated_at":"2026-04-21T06:25:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zw008/VMware-AIops","commit_stats":null,"previous_names":["zw008/vmware-aiops"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/zw008/VMware-AIops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-AIops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-AIops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-AIops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-AIops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zw008","download_url":"https://codeload.github.com/zw008/VMware-AIops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-AIops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32130776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-skill","aiops","automation","claude-code","codex","devops","esxi","gemini-cli","homelab","infrastructure","mcp","monitoring","pyvmomi","read-only-monitoring","vcenter","vm-lifecycle","vmware","vsphere"],"created_at":"2026-03-13T13:00:47.258Z","updated_at":"2026-04-22T10:00:45.285Z","avatar_url":"https://github.com/zw008.png","language":"Python","readme":"\u003c!-- mcp-name: io.github.zw008/vmware-aiops --\u003e\n# VMware AIops\n\n\u003e **作者**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com\n\u003e 本项目由 VMware 工程师维护的社区项目，非 VMware 官方产品。\n\u003e VMware 官方开发者工具请访问 [developer.broadcom.com](https://developer.broadcom.com)。\n\n[English](README.md) | 中文\n\nAI 驱动的 VMware vCenter/ESXi VM 生命周期管理与部署工具 — 6 大类 31 个工具。\n\n\u003e **配套技能**负责其他领域：\n\u003e\n\u003e | 技能 | 范围 | 安装 |\n\u003e |------|------|------|\n\u003e | **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读：资源清单、健康检查、告警、事件、指标 | `uv tool install vmware-monitor` |\n\u003e | **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN 管理 | `uv tool install vmware-storage` |\n\u003e | **[vmware-vks](https://github.com/zw008/VMware-VKS)** | Tanzu 命名空间、TKC 集群生命周期 | `uv tool install vmware-vks` |\n\u003e\n\u003e **只需要只读监控？** 使用 [VMware-Monitor](https://github.com/zw008/VMware-Monitor) — 代码库中零破坏性函数。\n\n[![ClawHub](https://img.shields.io/badge/ClawHub-vmware--aiops-orange)](https://clawhub.ai/skills/vmware-aiops)\n[![Skills.sh](https://img.shields.io/badge/Skills.sh-Install-blue)](https://skills.sh/zw008/VMware-AIops)\n[![Claude Code Marketplace](https://img.shields.io/badge/Claude_Code-Marketplace-blueviolet)](https://github.com/zw008/VMware-AIops)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n### 快速安装（推荐）\n\n支持 Claude Code、Cursor、Codex、Gemini CLI、Trae 等 30+ AI 工具：\n\n```bash\n# 通过 Skills.sh 安装\nnpx skills add zw008/VMware-AIops\n\n# 通过 ClawHub 安装\nclawhub install vmware-aiops\n```\n\n### PyPI 安装（无需访问 GitHub）\n\n```bash\n# 通过 uv 安装（推荐）\nuv tool install vmware-aiops\n\n# 或通过 pip 安装\npip install vmware-aiops\n\n# 国内镜像加速\npip install vmware-aiops -i https://pypi.tuna.tsinghua.edu.cn/simple\n```\n\n### Claude Code 快速安装\n\n```bash\n# 添加市场\n/plugin marketplace add zw008/VMware-AIops\n\n# 安装插件\n/plugin install vmware-ops\n\n# 使用完整版\n/vmware-ops:vmware-aiops\n```\n\n---\n\n## 功能总览\n\n### 本技能覆盖的功能\n\n| 分类 | 工具 | 数量 |\n|------|------|:----:|\n| **VM 生命周期** | 开关机、TTL 自动删除、Clean Slate | 6 |\n| **部署** | OVA、模板、链接克隆、批量克隆/部署 | 8 |\n| **Guest Ops** | 执行命令、上传/下载文件、批量制备 | 5 |\n| **Plan/Apply** | 多步骤编排与回滚 | 4 |\n| **集群** | 创建、删除、HA/DRS 配置、添加/移除主机 | 6 |\n| **数据存储** | 浏览文件、扫描镜像 | 2 |\n\n### CLI vs MCP：如何选择\n\n| 场景 | 推荐模式 | 原因 |\n|------|:-------:|------|\n| **本地/小模型**（Ollama、Qwen \u003c32B） | **CLI** | 上下文占用 ~2K tokens vs MCP ~10K；小模型难以处理 31 个工具的 schema |\n| **Token 敏感场景** | **CLI** | SKILL.md + Bash = 最小开销 |\n| **云端大模型**（Claude、GPT-4o） | 均可 | MCP 提供结构化 JSON 输入输出 |\n| **自动化管道 / Agent 链式调用** | **MCP** | 类型安全参数，结构化输出，无需 Shell 解析 |\n| **监控 / 存储 / K8s** | 配套技能 | 见 [vmware-monitor](https://github.com/zw008/VMware-Monitor)、[vmware-storage](https://github.com/zw008/VMware-Storage)、[vmware-vks](https://github.com/zw008/VMware-VKS) |\n\n\u003e **经验法则**：追求成本和兼容性选 CLI，追求结构化自动化选 MCP。\n\n### 架构\n\n```\n用户 (自然语言)\n  ↓\nAI CLI 工具 (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)\n  ↓ 读取 SKILL.md / AGENTS.md / rules 指令\n  ↓\nvmware-aiops CLI\n  ↓ pyVmomi (vSphere SOAP API)\n  ↓\nvCenter Server ──→ ESXi 集群 ──→ VM\n    或\nESXi 独立主机 ──→ VM\n```\n\n### 版本兼容性\n\n| vSphere 版本 | 支持状态 | 说明 |\n|-------------|---------|------|\n| 8.0 / 8.0U1-U3 | ✅ 完全支持 | `CreateSnapshot_Task` 已弃用，推荐 `CreateSnapshotEx_Task` |\n| 7.0 / 7.0U1-U3 | ✅ 完全支持 | 所有 API 正常工作 |\n| 6.7 | ✅ 兼容 | 向后兼容，已测试 |\n| 6.5 | ✅ 兼容 | 向后兼容，已测试 |\n\n\u003e pyVmomi 在 SOAP 握手阶段自动协商 API 版本，无需手动配置。同一套代码可同时管理 7.0 和 8.0 环境。\n\n---\n\n## 常用工作流\n\n### 部署实验环境\n\n1. 浏览数据存储查找 OVA 镜像 → `vmware-aiops datastore browse \u003cds\u003e --pattern \"*.ova\"`\n2. 从 OVA 部署 VM → `vmware-aiops deploy ova ./image.ova --name lab-vm --datastore ds1`\n3. 在 VM 内安装软件 → `vmware-aiops vm guest-exec lab-vm --cmd /bin/bash --args \"-c 'apt-get install -y nginx'\" --user root`\n4. 创建基线快照 → `vmware-aiops vm snapshot-create lab-vm --name baseline`\n5. 设置 TTL 自动清理 → `vmware-aiops vm set-ttl lab-vm --minutes 480`\n\n### 批量克隆测试\n\n1. 创建计划：`vm_create_plan`，包含多个克隆 + 配置步骤\n2. 审查计划（展示受影响的 VM、不可逆操作警告）\n3. 执行：`vm_apply_plan` 顺序执行，失败即停止\n4. 如失败：`vm_rollback_plan` 逆序撤销已执行步骤\n5. 对所有克隆设置 TTL 自动清理\n\n### 迁移 VM 到另一台主机\n\n1. 通过 `vmware-monitor` 查看 VM 信息 → 确认电源状态和当前主机\n2. 迁移：`vmware-aiops vm migrate my-vm --to-host esxi-02`\n3. 验证迁移完成\n\n---\n\n## 虚拟机生命周期\n\n| 操作 | 命令 | 确认 | vCenter | ESXi |\n|------|------|:----:|:-------:|:----:|\n| 开机 | `vm power-on \u003cname\u003e` | — | ✅ | ✅ |\n| 优雅关机 | `vm power-off \u003cname\u003e` | 双重 | ✅ | ✅ |\n| 强制关机 | `vm power-off \u003cname\u003e --force` | 双重 | ✅ | ✅ |\n| 重置 | `vm reset \u003cname\u003e` | — | ✅ | ✅ |\n| 挂起 | `vm suspend \u003cname\u003e` | — | ✅ | ✅ |\n| 创建 | `vm create \u003cname\u003e --cpu --memory --disk` | — | ✅ | ✅ |\n| 删除 | `vm delete \u003cname\u003e` | 双重 | ✅ | ✅ |\n| 调整配置 | `vm reconfigure \u003cname\u003e --cpu --memory` | 双重 | ✅ | ✅ |\n| 创建快照 | `vm snapshot-create \u003cname\u003e --name \u003csnap\u003e` | — | ✅ | ✅ |\n| 列出快照 | `vm snapshot-list \u003cname\u003e` | — | ✅ | ✅ |\n| 恢复快照 | `vm snapshot-revert \u003cname\u003e --name \u003csnap\u003e` | — | ✅ | ✅ |\n| 删除快照 | `vm snapshot-delete \u003cname\u003e --name \u003csnap\u003e` | — | ✅ | ✅ |\n| 克隆 | `vm clone \u003cname\u003e --new-name \u003cnew\u003e` | — | ✅ | ✅ |\n| 迁移 | `vm migrate \u003cname\u003e --to-host \u003chost\u003e` | — | ✅ | ❌ |\n| **设置 TTL** | `vm set-ttl \u003cname\u003e --minutes \u003cn\u003e` | — | ✅ | ✅ |\n| **取消 TTL** | `vm cancel-ttl \u003cname\u003e` | — | ✅ | ✅ |\n| **列出 TTL** | `vm list-ttl` | — | ✅ | ✅ |\n| **Clean Slate** | `vm clean-slate \u003cname\u003e [--snapshot baseline]` | 双重 | ✅ | ✅ |\n| **Guest 执行** | `vm guest-exec \u003cname\u003e --cmd /bin/bash --args \"...\"` | — | ✅ | ✅ |\n| **Guest 执行（含输出）** | `vm guest-exec-output \u003cname\u003e --cmd \"df -h\"` | — | ✅ | ✅ |\n| **Guest 上传** | `vm guest-upload \u003cname\u003e --local f.sh --guest /tmp/f.sh` | — | ✅ | ✅ |\n| **Guest 下载** | `vm guest-download \u003cname\u003e --guest /var/log/syslog --local ./syslog` | — | ✅ | ✅ |\n\n\u003e Guest Operations 需要 VM 内运行 VMware Tools。`guest-exec-output` 自动检测 Linux/Windows shell 并捕获 stdout/stderr。\n\n### Plan → Apply（多步操作编排）\n\n当操作涉及 2+ 步骤或 2+ 台 VM 时，自动使用 plan/apply 工作流：\n\n| 步骤 | 说明 |\n|------|------|\n| 1. **创建 Plan** | AI 调用 `vm_create_plan` — 校验操作、检查 vSphere 中目标是否存在、生成带回滚信息的 plan |\n| 2. **审查** | AI 展示 plan 给用户：步骤、影响的 VM、不可逆操作警告 |\n| 3. **执行** | `vm_apply_plan` 按顺序执行；某步失败立即停止 |\n| 4. **回滚**（如失败） | 询问用户是否回滚，`vm_rollback_plan` 逆序撤销已执行步骤（不可逆操作跳过） |\n\nPlan 存储在 `~/.vmware-aiops/plans/`，成功后自动删除，超过 24 小时自动清理。\n\n## VM 部署与制备\n\n| 操作 | 命令 | 速度 | vCenter | ESXi |\n|------|------|:----:|:-------:|:----:|\n| OVA 部署 | `deploy ova \u003cpath\u003e --name \u003cvm\u003e` | 分钟级 | ✅ | ✅ |\n| 模板部署 | `deploy template \u003ctmpl\u003e --name \u003cvm\u003e` | 分钟级 | ✅ | ✅ |\n| 链接克隆 | `deploy linked-clone --source \u003cvm\u003e --snapshot \u003csnap\u003e --name \u003cnew\u003e` | 秒级 | ✅ | ✅ |\n| 挂载 ISO | `deploy iso \u003cvm\u003e --iso \"[ds] path/to.iso\"` | 即时 | ✅ | ✅ |\n| 转为模板 | `deploy mark-template \u003cvm\u003e` | 即时 | ✅ | ✅ |\n| 批量克隆 | `deploy batch-clone --source \u003cvm\u003e --count \u003cn\u003e` | 分钟级 | ✅ | ✅ |\n| 批量部署 (YAML) | `deploy batch spec.yaml` | 自动 | ✅ | ✅ |\n\n## 集群管理\n\n| 操作 | 命令 | 确认 | vCenter | ESXi |\n|------|------|:----:|:-------:|:----:|\n| 集群信息 | `cluster info \u003cname\u003e` | — | ✅ | ❌ |\n| 创建集群 | `cluster create \u003cname\u003e [--ha] [--drs]` | — | ✅ | ❌ |\n| 删除集群 | `cluster delete \u003cname\u003e` | 双重 | ✅ | ❌ |\n| 添加主机 | `cluster add-host \u003ccluster\u003e --host \u003chost\u003e` | 双重 | ✅ | ❌ |\n| 移除主机 | `cluster remove-host \u003ccluster\u003e --host \u003chost\u003e` | 双重 | ✅ | ❌ |\n| 配置 HA/DRS | `cluster configure \u003cname\u003e [--ha/--no-ha] [--drs/--no-drs]` | 双重 | ✅ | ❌ |\n\n## 数据存储浏览\n\n| 功能 | vCenter | ESXi | 说明 |\n|------|:-------:|:----:|------|\n| 浏览文件 | ✅ | ✅ | 列出数据存储中任意路径的文件/文件夹 |\n| 扫描镜像 | ✅ | ✅ | 发现所有数据存储中的 ISO、OVA、OVF、VMDK 文件 |\n\n## 定时扫描与通知\n\n| 功能 | 说明 |\n|------|------|\n| 守护进程 | 基于 APScheduler，可配置间隔（默认 15 分钟） |\n| 多目标扫描 | 依次扫描所有配置的 vCenter/ESXi 目标 |\n| 日志分析 | 正则匹配：error, fail, critical, panic, timeout, corrupt |\n| 结构化日志 | JSONL 输出到 `~/.vmware-aiops/scan.log` |\n| Webhook 通知 | 支持 Slack、Discord 或任意 HTTP 端点 |\n\n## 安全特性\n\n| 功能 | 说明 |\n|------|------|\n| 预演模式（Dry-Run） | 任何破坏性命令加 `--dry-run` 可预览 API 调用而不执行，便于信任验证 |\n| Plan → Confirm → Execute → Log | 结构化工作流：展示当前状态、确认变更、执行、审计日志 |\n| 双重确认 | 所有破坏性操作（关机、删除、配置变更、快照恢复/删除、克隆、迁移）需连续两次确认，无绕过参数 |\n| 拒绝记录 | 用户拒绝的操作也会记录到审计日志，便于安全审计 |\n| 审计日志 | 所有操作记录到 `~/.vmware-aiops/audit.log`（JSONL），包含操作前后状态 |\n| 输入校验 | VM 名称长度/格式、CPU（1-128）、内存（128-1048576 MB）、磁盘（1-65536 GB）参数校验 |\n| 密码保护 | 通过 `.env` 加载密码并检查文件权限（warn if not 600），不出现在 shell 历史 |\n| 配置文件内容 | `config.yaml` 仅存储主机名、端口和 `.env` 引用路径，**不含密码或 Token** |\n| SSL 自签名 | 仅用于 ESXi 自签名证书的隔离实验环境；生产环境应使用 CA 签名证书 |\n| Prompt 注入防护 | vSphere 事件消息和主机日志在输出前进行截断、控制字符清理和边界标记包裹 |\n| Webhook 数据范围 | **默认禁用**。启用后仅向用户自配置的 URL 发送告警摘要，payload 不含凭据、IP 或 PII |\n| 最小权限 | 推荐使用专用 vCenter 服务账户，仅授予所需最小权限。仅需监控时使用 [VMware-Monitor](https://github.com/zw008/VMware-Monitor) |\n| 任务等待 | 所有异步操作等待完成并报告结果 |\n\n### vCenter vs ESXi 对比\n\n| 功能 | vCenter | ESXi 独立模式 |\n|------|:-------:|:----:|\n| vMotion 迁移 | ✅ | ❌ |\n| 跨主机克隆 | ✅ | ❌ |\n| 集群管理 | ✅ | ❌ |\n| 所有 VM 生命周期操作 | ✅ | ✅ |\n| OVA/模板/链接克隆部署 | ✅ | ✅ |\n| 数据存储浏览和扫描 | ✅ | ✅ |\n| 快照 | ✅ | ✅ |\n| Guest 操作 | ✅ | ✅ |\n\n\u003e 资源清单、告警、事件、传感器、主机服务、扫描已迁移至 [vmware-monitor](https://github.com/zw008/VMware-Monitor)。\n\n---\n\n## 故障排除\n\n### \"VM not found\" 错误\nvSphere 中 VM 名称区分大小写。请使用 `vmware-monitor inventory vms` 获取准确名称。\n\n### Guest exec 返回空输出\n使用 `vm_guest_exec_output` 而非 `vm_guest_exec` — 前者自动捕获 stdout/stderr。基础版 `vm_guest_exec` 仅返回退出码。\n\n### 部署 OVA 超时\n大型 OVA 文件（\u003e10GB）可能超过默认 120 秒超时。上传通过 HTTP NFC lease 进行 — 确保运行 vmware-aiops 的机器与 ESXi 之间网络稳定。\n\n### Plan 执行中途失败\n运行 `vmware-aiops plan list` 查看失败的 plan 状态。询问用户是否使用 `vm_rollback_plan` 回滚。不可逆步骤（delete_vm）在回滚时会跳过。\n\n### 连接被拒 / SSL 错误\n1. 验证目标可达：`vmware-aiops doctor`\n2. 自签名证书：在 config.yaml 中设置 `disableSslCertValidation: true`（仅限实验环境）\n\n---\n\n## 支持的 AI 平台\n\n| 平台 | 状态 | 配置文件 | AI 模型 |\n|------|------|---------|---------|\n| **Claude Code** | ✅ 原生技能 | `skills/vmware-aiops/SKILL.md` | Anthropic Claude |\n| **Gemini CLI** | ✅ 扩展 | `gemini-extension/GEMINI.md` | Google Gemini |\n| **OpenAI Codex CLI** | ✅ AGENTS.md | `codex-skill/AGENTS.md` | OpenAI GPT |\n| **Aider** | ✅ 约定文件 | `codex-skill/AGENTS.md` | 任意（云端 + 本地） |\n| **Continue CLI** | ✅ 规则文件 | `codex-skill/AGENTS.md` | 任意（云端 + 本地） |\n| **Trae IDE** | ✅ Rules | `trae-rules/project_rules.md` | Claude/DeepSeek/GPT-4o/Doubao |\n| **Kimi Code CLI** | ✅ Skill | `kimi-skill/SKILL.md` | Moonshot Kimi |\n| **MCP Server** | ✅ MCP 协议 | `mcp_server/` | 任意 MCP 客户端 |\n| **Python CLI** | ✅ 独立运行 | N/A | N/A |\n\n### MCP Server 集成（本地 Agent）\n\nvmware-aiops MCP Server 可接入**任何 MCP 兼容的 Agent 或工具**。配置模板见 [`examples/mcp-configs/`](examples/mcp-configs/)。\n\n| Agent / 工具 | 本地模型支持 | 配置模板 | 集成指南 |\n|-------------|:----------:|---------|---------|\n| **[Goose](https://github.com/block/goose)** | ✅ Ollama, LM Studio | [`goose.json`](examples/mcp-configs/goose.json) | [指南](docs/integrations/goose.md) |\n| **[LocalCowork](https://github.com/Liquid4All/localcowork)** | ✅ 完全离线 | [`localcowork.json`](examples/mcp-configs/localcowork.json) | [指南](docs/integrations/localcowork.md) |\n| **[mcp-agent](https://github.com/lastmile-ai/mcp-agent)** | ✅ Ollama, vLLM | [`mcp-agent.yaml`](examples/mcp-configs/mcp-agent.yaml) | [指南](docs/integrations/mcp-agent.md) |\n| **VS Code Copilot** | — | [`vscode-copilot.json`](examples/mcp-configs/vscode-copilot.json) | [指南](docs/integrations/vscode-copilot.md) |\n| **Cursor** | — | [`cursor.json`](examples/mcp-configs/cursor.json) | — |\n| **Continue** | ✅ Ollama | [`continue.yaml`](examples/mcp-configs/continue.yaml) | [指南](docs/integrations/continue.md) |\n| **Claude Code** | — | [`claude-code.json`](examples/mcp-configs/claude-code.json) | — |\n\n**完全本地运行**（无需云端 API）：\n\n```bash\n# Aider + Ollama + vmware-aiops（通过 AGENTS.md）\naider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b\n```\n\n---\n\n## 安装\n\n### 第 0 步：前置条件\n\n```bash\npython3 --version   # 需要 Python 3.10+\nnode --version      # Gemini/Codex CLI 需要 Node.js 18+\n```\n\n### 第 1 步：安装 Python 后端\n\n所有平台共用同一个 Python 后端：\n\n```bash\ngit clone https://github.com/zw008/VMware-AIops.git\ncd VMware-AIops\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -e .\n```\n\n### 第 2 步：配置\n\n```bash\nmkdir -p ~/.vmware-aiops\ncp config.example.yaml ~/.vmware-aiops/config.yaml\n# 编辑 config.yaml，填入你的 vCenter/ESXi 目标信息\n```\n\n通过 `.env` 文件设置密码（推荐）：\n\n```bash\n# 使用模板创建 .env 文件\ncp .env.example ~/.vmware-aiops/.env\n\n# 编辑并填入真实密码\n# 然后锁定文件权限（仅所有者可读写）\nchmod 600 ~/.vmware-aiops/.env\n```\n\n\u003e **安全提示**：推荐使用 `.env` 文件而非命令行 `export`，避免密码出现在 shell 历史记录中。`.env` 文件必须设置 `chmod 600`（仅所有者可读写）。\n\n密码环境变量命名规则：`VMWARE_{目标名大写}_PASSWORD`\n- 连字符替换为下划线，全大写\n- 目标 `home-esxi` → `VMWARE_HOME_ESXI_PASSWORD`\n- 目标 `prod-vcenter` → `VMWARE_PROD_VCENTER_PASSWORD`\n\n### 安全最佳实践\n\n- **绝不**在脚本或配置文件中硬编码密码\n- **绝不**通过命令行参数传递密码（`ps` 命令可见）\n- **绝不**在输出或日志中显示密码\n- **始终**使用 `~/.vmware-aiops/.env` 并设置 `chmod 600`\n- **始终**通过 `config.yaml` 配置连接 — 凭据自动从 `.env` 加载\n- **TLS**：默认启用。仅在使用自签名证书的隔离实验环境中才禁用\n- **Webhook**：仅向您自己配置的 URL 发送通知，默认不向第三方服务发送数据\n- **代码审查**：建议在生产部署前审查[源代码](https://github.com/zw008/VMware-AIops)和提交历史\n- **生产环境安全**：生产环境建议使用只读的 [VMware-Monitor](https://github.com/zw008/VMware-Monitor)。AI Agent 可能误解上下文并执行非预期的破坏性操作 — 已有真实案例表明，缺乏隔离的 AI 驱动基础设施工具可能删除生产数据库和整个环境。VMware-Monitor 在代码级别消除此风险：代码库中不存在任何破坏性函数\n\n### 第 3 步：连接 AI 工具\n\n#### Claude Code（推荐）\n\n```bash\n/plugin marketplace add zw008/VMware-AIops\n/plugin install vmware-ops\n/vmware-ops:vmware-aiops          # 完整版\n/vmware-ops:vmware-monitor        # 只读监控（更安全）\n```\n\n#### Gemini CLI\n\n```bash\nnpm install -g @google/gemini-cli\ngemini extensions install ./gemini-extension\ngemini\n\u003e 显示 ESXi 上所有虚拟机\n```\n\n#### Codex CLI\n\n```bash\nnpm i -g @openai/codex\nmkdir -p ~/.codex/skills/vmware-aiops\ncp codex-skill/SKILL.md ~/.codex/skills/vmware-aiops/SKILL.md\ncp codex-skill/AGENTS.md ./AGENTS.md\ncodex --enable skills\n```\n\n#### Aider（支持本地模型）\n\n```bash\npip install aider-chat\n# 云端\naider --conventions codex-skill/AGENTS.md\n# 本地 Ollama\naider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b\n```\n\n#### Trae IDE\n\n将规则文件复制到项目的 `.trae/rules/` 目录：\n\n```bash\nmkdir -p .trae/rules\ncp trae-rules/project_rules.md .trae/rules/project_rules.md\n```\n\nTrae IDE 的 Builder Mode 会在启动时自动读取 `.trae/rules/` 下的 Markdown 文件。\n\n\u003e 注意：也可以在 Trae IDE 中安装 Claude Code VS Code 扩展，直接使用 `.claude/skills/` 格式。\n\n#### Kimi Code CLI\n\n```bash\n# 复制技能文件到 Kimi skills 目录\nmkdir -p ~/.kimi/skills/vmware-aiops\ncp kimi-skill/SKILL.md ~/.kimi/skills/vmware-aiops/SKILL.md\n```\n\n#### MCP 服务器（Smithery / Glama / Claude Desktop）\n\nMCP 服务器通过 [Model Context Protocol](https://modelcontextprotocol.io) 将 VMware 操作暴露为工具，兼容所有 MCP 客户端（Claude Desktop、Cursor 等）。\n\n```bash\n# 通过 uvx 运行（推荐 — 适用于 uv tool install 安装方式）\nuvx --from vmware-aiops vmware-aiops-mcp\n\n# 指定配置路径\nVMWARE_AIOPS_CONFIG=/path/to/config.yaml uvx --from vmware-aiops vmware-aiops-mcp\n```\n\n**Claude Desktop 配置** (`claude_desktop_config.json`)：\n```json\n{\n  \"mcpServers\": {\n    \"vmware-aiops\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"vmware-aiops\", \"vmware-aiops-mcp\"],\n      \"env\": {\n        \"VMWARE_AIOPS_CONFIG\": \"/path/to/config.yaml\"\n      }\n    }\n  }\n}\n```\n\n**通过 Smithery 安装**：\n```bash\nnpx -y @smithery/cli install @zw008/VMware-AIops --client claude\n```\n\n---\n\n#### 独立 CLI（无需 AI）\n\n```bash\nsource .venv/bin/activate\nvmware-aiops vm power-on my-vm --target home-esxi\nvmware-aiops deploy ova ./ubuntu.ova --name my-vm --target home-esxi\nvmware-aiops datastore browse datastore1 --target home-esxi\n```\n\n---\n\n## 国内云端模型\n\n| 模型 | 说明 | 配合工具 |\n|------|------|---------|\n| DeepSeek | 性价比高，编程能力强 | Aider / Continue |\n| 通义千问 Qwen | 阿里云，有免费额度 | Aider / Continue |\n| 豆包 Doubao | 字节跳动 | Aider / Trae IDE |\n\n```bash\n# DeepSeek\nexport DEEPSEEK_API_KEY=\"your-key\"\naider --conventions codex-skill/AGENTS.md --model deepseek/deepseek-coder\n\n# 通义千问\nexport DASHSCOPE_API_KEY=\"your-key\"\naider --conventions codex-skill/AGENTS.md --model qwen/qwen-coder-plus\n```\n\n---\n\n## 本地模型（Aider + Ollama）\n\n完全离线运行，无需云端 API，完全隐私：\n\n```bash\nbrew install ollama              # macOS\nollama pull qwen2.5-coder:32b   # 下载模型（~20GB）\nollama serve                     # 启动服务\n\naider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b\n```\n\n---\n\n## CLI 命令参考\n\n```bash\n# 环境诊断\nvmware-aiops doctor                   # 检查环境、配置、连通性\nvmware-aiops doctor --skip-auth       # 跳过 vSphere 认证检查（更快）\n\n# MCP 配置生成\nvmware-aiops mcp-config generate --agent goose        # 生成 Goose 配置\nvmware-aiops mcp-config generate --agent claude-code  # 生成 Claude Code 配置\nvmware-aiops mcp-config list                          # 列出所有支持的 Agent\n\n# 虚拟机操作\nvmware-aiops vm power-on|power-off|reset|suspend \u003cvm-name\u003e\nvmware-aiops vm create \u003cname\u003e --cpu 4 --memory 8192 --disk 100\nvmware-aiops vm delete \u003cname\u003e --confirm\nvmware-aiops vm reconfigure \u003cname\u003e --cpu 4 --memory 8192\nvmware-aiops vm snapshot-create|snapshot-list|snapshot-revert|snapshot-delete \u003cname\u003e\nvmware-aiops vm clone \u003cname\u003e --new-name \u003cnew\u003e\nvmware-aiops vm migrate \u003cname\u003e --to-host \u003chost\u003e\nvmware-aiops vm set-ttl \u003cname\u003e --minutes 60     # 60 分钟后自动删除\nvmware-aiops vm cancel-ttl \u003cname\u003e              # 取消 TTL\nvmware-aiops vm list-ttl                       # 查看所有 TTL\nvmware-aiops vm clean-slate \u003cname\u003e --snapshot baseline  # 恢复基线快照（双重确认）\n\n# Guest Operations（需要 VMware Tools）\nvmware-aiops vm guest-exec my-vm --cmd /bin/bash --args \"-c 'whoami'\" --user root\nvmware-aiops vm guest-upload my-vm --local ./script.sh --guest /tmp/script.sh --user root\nvmware-aiops vm guest-download my-vm --guest /var/log/syslog --local ./syslog.txt --user root\n\n# Plan → Apply（多步操作编排）\nvmware-aiops plan list                                # 查看待执行/失败的 plan\n\n# 部署\nvmware-aiops deploy ova ./ubuntu.ova --name my-vm --datastore ds1      # 从 OVA 部署\nvmware-aiops deploy template golden-ubuntu --name new-vm               # 从模板部署\nvmware-aiops deploy linked-clone --source base-vm --snapshot clean --name test-vm  # 链接克隆（秒级）\nvmware-aiops deploy iso my-vm --iso \"[datastore1] iso/ubuntu-22.04.iso\"  # 挂载 ISO\nvmware-aiops deploy mark-template golden-vm                            # 转为模板\nvmware-aiops deploy batch-clone --source base-vm --count 5 --prefix lab  # 批量克隆\nvmware-aiops deploy batch deploy.yaml                                  # 从 YAML 批量部署\n\n# 集群\nvmware-aiops cluster info my-cluster                                   # 集群详情\nvmware-aiops cluster create my-cluster --ha --drs                      # 创建集群\nvmware-aiops cluster delete my-cluster                                 # 删除集群（双重确认）\nvmware-aiops cluster add-host my-cluster --host esxi-03                # 添加主机（双重确认）\nvmware-aiops cluster remove-host my-cluster --host esxi-03             # 移除主机（双重确认）\nvmware-aiops cluster configure my-cluster --ha --drs                   # 配置 HA/DRS（双重确认）\n\n# 数据存储（浏览和扫描镜像保留在 aiops；iSCSI/vSAN 已迁移至 vmware-storage）\nvmware-aiops datastore browse datastore1 --path \"iso/\"                 # 浏览数据存储\nvmware-aiops datastore scan-images --target home-esxi                  # 扫描所有数据存储的镜像\n\n# 扫描与守护进程\nvmware-aiops scan now [--target \u003cname\u003e]\nvmware-aiops daemon start|stop|status\n\n# 配套技能负责的操作：\n#   vmware-monitor: 资源清单、告警、事件、传感器\n#   vmware-storage: 数据存储管理、iSCSI、vSAN\n#   vmware-vks:     Tanzu/TKC 集群生命周期\n```\n\n---\n\n## 项目结构\n\n```\nVMware-AIops/\n├── .claude-plugin/                # Claude Code 市场清单\n├── plugins/vmware-ops/            # Claude Code 插件\n│   └── skills/\n│       ├── vmware-aiops/SKILL.md  # 完整运维技能\n│       └── vmware-monitor/SKILL.md # 只读监控技能\n├── skills/                        # Skills 索引（npx skills add）\n│   └── vmware-aiops/\n│       ├── SKILL.md               # 精简版技能（渐进式展开）\n│       └── references/            # 按需加载的详细文档\n│           ├── capabilities.md    # 完整功能表格\n│           ├── cli-reference.md   # 完整 CLI 参考\n│           └── setup-guide.md     # 安装、安全、AI 平台\n├── vmware_aiops/                  # Python 后端\n│   ├── config.py                  # 配置管理\n│   ├── connection.py              # 多目标连接（pyVmomi）\n│   ├── cli.py                     # CLI（双重确认）\n│   ├── ops/                       # 运维操作\n│   │   ├── inventory.py           # VM、主机、数据存储、集群\n│   │   ├── health.py              # 告警、事件、传感器\n│   │   ├── vm_lifecycle.py        # VM 生命周期管理\n│   │   ├── vm_deploy.py           # OVA、模板、链接克隆、批量部署\n│   │   └── datastore_browser.py   # 数据存储浏览、镜像发现\n│   ├── scanner/                   # 日志扫描守护进程\n│   └── notify/                    # 通知（JSONL + Webhook）\n├── skill/SKILL.md                 # Claude Code 独立技能\n├── gemini-extension/GEMINI.md     # Gemini CLI 扩展\n├── codex-skill/AGENTS.md          # Codex / Aider / Continue\n├── trae-rules/project_rules.md    # Trae IDE 规则\n├── kimi-skill/SKILL.md            # Kimi Code CLI 技能\n├── mcp_server/                    # MCP 服务器\n│   ├── server.py                  # MCP 工具定义\n│   └── __main__.py                # 入口\n├── smithery.yaml                  # Smithery 市场配置\n├── config.example.yaml\n└── pyproject.toml\n```\n\n## 相关项目\n\n| Skill | 范围 | 工具数 | 安装 |\n|-------|------|:-----:|------|\n| **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读监控、告警、事件 | 8 | `uv tool install vmware-monitor` |\n| **[vmware-aiops](https://github.com/zw008/VMware-AIops)** | VM 生命周期、部署、Guest Ops、集群、数据存储浏览 | 31 | `uv tool install vmware-aiops` |\n| **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN | 11 | `uv tool install vmware-storage` |\n| **[vmware-vks](https://github.com/zw008/VMware-VKS)** | Tanzu 命名空间、TKC 集群生命周期 | 20 | `uv tool install vmware-vks` |\n\n---\n\n## 问题反馈与贡献\n\n如果遇到任何报错或问题，请将错误信息、日志或截图发送至 **zhouwei008@gmail.com**。欢迎加入我们，一起维护和改进这个项目！\n\nIf you encounter any errors or issues, please send the error message, logs, or screenshots to **zhouwei008@gmail.com**. Contributions are welcome — feel free to join us in maintaining and improving this project!\n\n## 许可证\n\nMIT\n","funding_links":[],"categories":["Sponsors ❤️","Code \u0026 Developer Tools"],"sub_categories":["Community Skills"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzw008%2FVMware-AIops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzw008%2FVMware-AIops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzw008%2FVMware-AIops/lists"}