An open API service indexing awesome lists of open source software.

https://github.com/zw008/VMware-AIops

VMware vCenter/ESXi AI-powered monitoring and operations. Two skills: vmware-monitor (read-only, safe) and vmware-aiops (full operations) | Claude Code Skill
https://github.com/zw008/VMware-AIops

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

Last synced: 9 days ago
JSON representation

VMware vCenter/ESXi AI-powered monitoring and operations. Two skills: vmware-monitor (read-only, safe) and vmware-aiops (full operations) | Claude Code Skill

Awesome Lists containing this project

README

          

# VMware AIops

> **作者**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com
> 本项目由 VMware 工程师维护的社区项目,非 VMware 官方产品。
> VMware 官方开发者工具请访问 [developer.broadcom.com](https://developer.broadcom.com)。

[English](README.md) | 中文

AI 驱动的 VMware vCenter/ESXi VM 生命周期管理与部署工具 — 6 大类 31 个工具。

> **配套技能**负责其他领域:
>
> | 技能 | 范围 | 安装 |
> |------|------|------|
> | **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读:资源清单、健康检查、告警、事件、指标 | `uv tool install vmware-monitor` |
> | **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN 管理 | `uv tool install vmware-storage` |
> | **[vmware-vks](https://github.com/zw008/VMware-VKS)** | Tanzu 命名空间、TKC 集群生命周期 | `uv tool install vmware-vks` |
>
> **只需要只读监控?** 使用 [VMware-Monitor](https://github.com/zw008/VMware-Monitor) — 代码库中零破坏性函数。

[![ClawHub](https://img.shields.io/badge/ClawHub-vmware--aiops-orange)](https://clawhub.ai/skills/vmware-aiops)
[![Skills.sh](https://img.shields.io/badge/Skills.sh-Install-blue)](https://skills.sh/zw008/VMware-AIops)
[![Claude Code Marketplace](https://img.shields.io/badge/Claude_Code-Marketplace-blueviolet)](https://github.com/zw008/VMware-AIops)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

### 快速安装(推荐)

支持 Claude Code、Cursor、Codex、Gemini CLI、Trae 等 30+ AI 工具:

```bash
# 通过 Skills.sh 安装
npx skills add zw008/VMware-AIops

# 通过 ClawHub 安装
clawhub install vmware-aiops
```

### PyPI 安装(无需访问 GitHub)

```bash
# 通过 uv 安装(推荐)
uv tool install vmware-aiops

# 或通过 pip 安装
pip install vmware-aiops

# 国内镜像加速
pip install vmware-aiops -i https://pypi.tuna.tsinghua.edu.cn/simple
```

### Claude Code 快速安装

```bash
# 添加市场
/plugin marketplace add zw008/VMware-AIops

# 安装插件
/plugin install vmware-ops

# 使用完整版
/vmware-ops:vmware-aiops
```

---

## 功能总览

### 本技能覆盖的功能

| 分类 | 工具 | 数量 |
|------|------|:----:|
| **VM 生命周期** | 开关机、TTL 自动删除、Clean Slate | 6 |
| **部署** | OVA、模板、链接克隆、批量克隆/部署 | 8 |
| **Guest Ops** | 执行命令、上传/下载文件、批量制备 | 5 |
| **Plan/Apply** | 多步骤编排与回滚 | 4 |
| **集群** | 创建、删除、HA/DRS 配置、添加/移除主机 | 6 |
| **数据存储** | 浏览文件、扫描镜像 | 2 |

### CLI vs MCP:如何选择

| 场景 | 推荐模式 | 原因 |
|------|:-------:|------|
| **本地/小模型**(Ollama、Qwen <32B) | **CLI** | 上下文占用 ~2K tokens vs MCP ~10K;小模型难以处理 31 个工具的 schema |
| **Token 敏感场景** | **CLI** | SKILL.md + Bash = 最小开销 |
| **云端大模型**(Claude、GPT-4o) | 均可 | MCP 提供结构化 JSON 输入输出 |
| **自动化管道 / Agent 链式调用** | **MCP** | 类型安全参数,结构化输出,无需 Shell 解析 |
| **监控 / 存储 / 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) |

> **经验法则**:追求成本和兼容性选 CLI,追求结构化自动化选 MCP。

### 架构

```
用户 (自然语言)

AI CLI 工具 (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
↓ 读取 SKILL.md / AGENTS.md / rules 指令

vmware-aiops CLI
↓ pyVmomi (vSphere SOAP API)

vCenter Server ──→ ESXi 集群 ──→ VM

ESXi 独立主机 ──→ VM
```

### 版本兼容性

| vSphere 版本 | 支持状态 | 说明 |
|-------------|---------|------|
| 8.0 / 8.0U1-U3 | ✅ 完全支持 | `CreateSnapshot_Task` 已弃用,推荐 `CreateSnapshotEx_Task` |
| 7.0 / 7.0U1-U3 | ✅ 完全支持 | 所有 API 正常工作 |
| 6.7 | ✅ 兼容 | 向后兼容,已测试 |
| 6.5 | ✅ 兼容 | 向后兼容,已测试 |

> pyVmomi 在 SOAP 握手阶段自动协商 API 版本,无需手动配置。同一套代码可同时管理 7.0 和 8.0 环境。

---

## 常用工作流

### 部署实验环境

1. 浏览数据存储查找 OVA 镜像 → `vmware-aiops datastore browse --pattern "*.ova"`
2. 从 OVA 部署 VM → `vmware-aiops deploy ova ./image.ova --name lab-vm --datastore ds1`
3. 在 VM 内安装软件 → `vmware-aiops vm guest-exec lab-vm --cmd /bin/bash --args "-c 'apt-get install -y nginx'" --user root`
4. 创建基线快照 → `vmware-aiops vm snapshot-create lab-vm --name baseline`
5. 设置 TTL 自动清理 → `vmware-aiops vm set-ttl lab-vm --minutes 480`

### 批量克隆测试

1. 创建计划:`vm_create_plan`,包含多个克隆 + 配置步骤
2. 审查计划(展示受影响的 VM、不可逆操作警告)
3. 执行:`vm_apply_plan` 顺序执行,失败即停止
4. 如失败:`vm_rollback_plan` 逆序撤销已执行步骤
5. 对所有克隆设置 TTL 自动清理

### 迁移 VM 到另一台主机

1. 通过 `vmware-monitor` 查看 VM 信息 → 确认电源状态和当前主机
2. 迁移:`vmware-aiops vm migrate my-vm --to-host esxi-02`
3. 验证迁移完成

---

## 虚拟机生命周期

| 操作 | 命令 | 确认 | vCenter | ESXi |
|------|------|:----:|:-------:|:----:|
| 开机 | `vm power-on ` | — | ✅ | ✅ |
| 优雅关机 | `vm power-off ` | 双重 | ✅ | ✅ |
| 强制关机 | `vm power-off --force` | 双重 | ✅ | ✅ |
| 重置 | `vm reset ` | — | ✅ | ✅ |
| 挂起 | `vm suspend ` | — | ✅ | ✅ |
| 创建 | `vm create --cpu --memory --disk` | — | ✅ | ✅ |
| 删除 | `vm delete ` | 双重 | ✅ | ✅ |
| 调整配置 | `vm reconfigure --cpu --memory` | 双重 | ✅ | ✅ |
| 创建快照 | `vm snapshot-create --name ` | — | ✅ | ✅ |
| 列出快照 | `vm snapshot-list ` | — | ✅ | ✅ |
| 恢复快照 | `vm snapshot-revert --name ` | — | ✅ | ✅ |
| 删除快照 | `vm snapshot-delete --name ` | — | ✅ | ✅ |
| 克隆 | `vm clone --new-name ` | — | ✅ | ✅ |
| 迁移 | `vm migrate --to-host ` | — | ✅ | ❌ |
| **设置 TTL** | `vm set-ttl --minutes ` | — | ✅ | ✅ |
| **取消 TTL** | `vm cancel-ttl ` | — | ✅ | ✅ |
| **列出 TTL** | `vm list-ttl` | — | ✅ | ✅ |
| **Clean Slate** | `vm clean-slate [--snapshot baseline]` | 双重 | ✅ | ✅ |
| **Guest 执行** | `vm guest-exec --cmd /bin/bash --args "..."` | — | ✅ | ✅ |
| **Guest 执行(含输出)** | `vm guest-exec-output --cmd "df -h"` | — | ✅ | ✅ |
| **Guest 上传** | `vm guest-upload --local f.sh --guest /tmp/f.sh` | — | ✅ | ✅ |
| **Guest 下载** | `vm guest-download --guest /var/log/syslog --local ./syslog` | — | ✅ | ✅ |

> Guest Operations 需要 VM 内运行 VMware Tools。`guest-exec-output` 自动检测 Linux/Windows shell 并捕获 stdout/stderr。

### Plan → Apply(多步操作编排)

当操作涉及 2+ 步骤或 2+ 台 VM 时,自动使用 plan/apply 工作流:

| 步骤 | 说明 |
|------|------|
| 1. **创建 Plan** | AI 调用 `vm_create_plan` — 校验操作、检查 vSphere 中目标是否存在、生成带回滚信息的 plan |
| 2. **审查** | AI 展示 plan 给用户:步骤、影响的 VM、不可逆操作警告 |
| 3. **执行** | `vm_apply_plan` 按顺序执行;某步失败立即停止 |
| 4. **回滚**(如失败) | 询问用户是否回滚,`vm_rollback_plan` 逆序撤销已执行步骤(不可逆操作跳过) |

Plan 存储在 `~/.vmware-aiops/plans/`,成功后自动删除,超过 24 小时自动清理。

## VM 部署与制备

| 操作 | 命令 | 速度 | vCenter | ESXi |
|------|------|:----:|:-------:|:----:|
| OVA 部署 | `deploy ova --name ` | 分钟级 | ✅ | ✅ |
| 模板部署 | `deploy template --name ` | 分钟级 | ✅ | ✅ |
| 链接克隆 | `deploy linked-clone --source --snapshot --name ` | 秒级 | ✅ | ✅ |
| 挂载 ISO | `deploy iso --iso "[ds] path/to.iso"` | 即时 | ✅ | ✅ |
| 转为模板 | `deploy mark-template ` | 即时 | ✅ | ✅ |
| 批量克隆 | `deploy batch-clone --source --count ` | 分钟级 | ✅ | ✅ |
| 批量部署 (YAML) | `deploy batch spec.yaml` | 自动 | ✅ | ✅ |

## 集群管理

| 操作 | 命令 | 确认 | vCenter | ESXi |
|------|------|:----:|:-------:|:----:|
| 集群信息 | `cluster info ` | — | ✅ | ❌ |
| 创建集群 | `cluster create [--ha] [--drs]` | — | ✅ | ❌ |
| 删除集群 | `cluster delete ` | 双重 | ✅ | ❌ |
| 添加主机 | `cluster add-host --host ` | 双重 | ✅ | ❌ |
| 移除主机 | `cluster remove-host --host ` | 双重 | ✅ | ❌ |
| 配置 HA/DRS | `cluster configure [--ha/--no-ha] [--drs/--no-drs]` | 双重 | ✅ | ❌ |

## 数据存储浏览

| 功能 | vCenter | ESXi | 说明 |
|------|:-------:|:----:|------|
| 浏览文件 | ✅ | ✅ | 列出数据存储中任意路径的文件/文件夹 |
| 扫描镜像 | ✅ | ✅ | 发现所有数据存储中的 ISO、OVA、OVF、VMDK 文件 |

## 定时扫描与通知

| 功能 | 说明 |
|------|------|
| 守护进程 | 基于 APScheduler,可配置间隔(默认 15 分钟) |
| 多目标扫描 | 依次扫描所有配置的 vCenter/ESXi 目标 |
| 日志分析 | 正则匹配:error, fail, critical, panic, timeout, corrupt |
| 结构化日志 | JSONL 输出到 `~/.vmware-aiops/scan.log` |
| Webhook 通知 | 支持 Slack、Discord 或任意 HTTP 端点 |

## 安全特性

| 功能 | 说明 |
|------|------|
| 预演模式(Dry-Run) | 任何破坏性命令加 `--dry-run` 可预览 API 调用而不执行,便于信任验证 |
| Plan → Confirm → Execute → Log | 结构化工作流:展示当前状态、确认变更、执行、审计日志 |
| 双重确认 | 所有破坏性操作(关机、删除、配置变更、快照恢复/删除、克隆、迁移)需连续两次确认,无绕过参数 |
| 拒绝记录 | 用户拒绝的操作也会记录到审计日志,便于安全审计 |
| 审计日志 | 所有操作记录到 `~/.vmware-aiops/audit.log`(JSONL),包含操作前后状态 |
| 输入校验 | VM 名称长度/格式、CPU(1-128)、内存(128-1048576 MB)、磁盘(1-65536 GB)参数校验 |
| 密码保护 | 通过 `.env` 加载密码并检查文件权限(warn if not 600),不出现在 shell 历史 |
| 配置文件内容 | `config.yaml` 仅存储主机名、端口和 `.env` 引用路径,**不含密码或 Token** |
| SSL 自签名 | 仅用于 ESXi 自签名证书的隔离实验环境;生产环境应使用 CA 签名证书 |
| Prompt 注入防护 | vSphere 事件消息和主机日志在输出前进行截断、控制字符清理和边界标记包裹 |
| Webhook 数据范围 | **默认禁用**。启用后仅向用户自配置的 URL 发送告警摘要,payload 不含凭据、IP 或 PII |
| 最小权限 | 推荐使用专用 vCenter 服务账户,仅授予所需最小权限。仅需监控时使用 [VMware-Monitor](https://github.com/zw008/VMware-Monitor) |
| 任务等待 | 所有异步操作等待完成并报告结果 |

### vCenter vs ESXi 对比

| 功能 | vCenter | ESXi 独立模式 |
|------|:-------:|:----:|
| vMotion 迁移 | ✅ | ❌ |
| 跨主机克隆 | ✅ | ❌ |
| 集群管理 | ✅ | ❌ |
| 所有 VM 生命周期操作 | ✅ | ✅ |
| OVA/模板/链接克隆部署 | ✅ | ✅ |
| 数据存储浏览和扫描 | ✅ | ✅ |
| 快照 | ✅ | ✅ |
| Guest 操作 | ✅ | ✅ |

> 资源清单、告警、事件、传感器、主机服务、扫描已迁移至 [vmware-monitor](https://github.com/zw008/VMware-Monitor)。

---

## 故障排除

### "VM not found" 错误
vSphere 中 VM 名称区分大小写。请使用 `vmware-monitor inventory vms` 获取准确名称。

### Guest exec 返回空输出
使用 `vm_guest_exec_output` 而非 `vm_guest_exec` — 前者自动捕获 stdout/stderr。基础版 `vm_guest_exec` 仅返回退出码。

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

### Plan 执行中途失败
运行 `vmware-aiops plan list` 查看失败的 plan 状态。询问用户是否使用 `vm_rollback_plan` 回滚。不可逆步骤(delete_vm)在回滚时会跳过。

### 连接被拒 / SSL 错误
1. 验证目标可达:`vmware-aiops doctor`
2. 自签名证书:在 config.yaml 中设置 `disableSslCertValidation: true`(仅限实验环境)

---

## 支持的 AI 平台

| 平台 | 状态 | 配置文件 | AI 模型 |
|------|------|---------|---------|
| **Claude Code** | ✅ 原生技能 | `skills/vmware-aiops/SKILL.md` | Anthropic Claude |
| **Gemini CLI** | ✅ 扩展 | `gemini-extension/GEMINI.md` | Google Gemini |
| **OpenAI Codex CLI** | ✅ AGENTS.md | `codex-skill/AGENTS.md` | OpenAI GPT |
| **Aider** | ✅ 约定文件 | `codex-skill/AGENTS.md` | 任意(云端 + 本地) |
| **Continue CLI** | ✅ 规则文件 | `codex-skill/AGENTS.md` | 任意(云端 + 本地) |
| **Trae IDE** | ✅ Rules | `trae-rules/project_rules.md` | Claude/DeepSeek/GPT-4o/Doubao |
| **Kimi Code CLI** | ✅ Skill | `kimi-skill/SKILL.md` | Moonshot Kimi |
| **MCP Server** | ✅ MCP 协议 | `mcp_server/` | 任意 MCP 客户端 |
| **Python CLI** | ✅ 独立运行 | N/A | N/A |

### MCP Server 集成(本地 Agent)

vmware-aiops MCP Server 可接入**任何 MCP 兼容的 Agent 或工具**。配置模板见 [`examples/mcp-configs/`](examples/mcp-configs/)。

| Agent / 工具 | 本地模型支持 | 配置模板 | 集成指南 |
|-------------|:----------:|---------|---------|
| **[Goose](https://github.com/block/goose)** | ✅ Ollama, LM Studio | [`goose.json`](examples/mcp-configs/goose.json) | [指南](docs/integrations/goose.md) |
| **[LocalCowork](https://github.com/Liquid4All/localcowork)** | ✅ 完全离线 | [`localcowork.json`](examples/mcp-configs/localcowork.json) | [指南](docs/integrations/localcowork.md) |
| **[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) |
| **VS Code Copilot** | — | [`vscode-copilot.json`](examples/mcp-configs/vscode-copilot.json) | [指南](docs/integrations/vscode-copilot.md) |
| **Cursor** | — | [`cursor.json`](examples/mcp-configs/cursor.json) | — |
| **Continue** | ✅ Ollama | [`continue.yaml`](examples/mcp-configs/continue.yaml) | [指南](docs/integrations/continue.md) |
| **Claude Code** | — | [`claude-code.json`](examples/mcp-configs/claude-code.json) | — |

**完全本地运行**(无需云端 API):

```bash
# Aider + Ollama + vmware-aiops(通过 AGENTS.md)
aider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b
```

---

## 安装

### 第 0 步:前置条件

```bash
python3 --version # 需要 Python 3.10+
node --version # Gemini/Codex CLI 需要 Node.js 18+
```

### 第 1 步:安装 Python 后端

所有平台共用同一个 Python 后端:

```bash
git clone https://github.com/zw008/VMware-AIops.git
cd VMware-AIops
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```

### 第 2 步:配置

```bash
mkdir -p ~/.vmware-aiops
cp config.example.yaml ~/.vmware-aiops/config.yaml
# 编辑 config.yaml,填入你的 vCenter/ESXi 目标信息
```

通过 `.env` 文件设置密码(推荐):

```bash
# 使用模板创建 .env 文件
cp .env.example ~/.vmware-aiops/.env

# 编辑并填入真实密码
# 然后锁定文件权限(仅所有者可读写)
chmod 600 ~/.vmware-aiops/.env
```

> **安全提示**:推荐使用 `.env` 文件而非命令行 `export`,避免密码出现在 shell 历史记录中。`.env` 文件必须设置 `chmod 600`(仅所有者可读写)。

密码环境变量命名规则:`VMWARE_{目标名大写}_PASSWORD`
- 连字符替换为下划线,全大写
- 目标 `home-esxi` → `VMWARE_HOME_ESXI_PASSWORD`
- 目标 `prod-vcenter` → `VMWARE_PROD_VCENTER_PASSWORD`

### 安全最佳实践

- **绝不**在脚本或配置文件中硬编码密码
- **绝不**通过命令行参数传递密码(`ps` 命令可见)
- **绝不**在输出或日志中显示密码
- **始终**使用 `~/.vmware-aiops/.env` 并设置 `chmod 600`
- **始终**通过 `config.yaml` 配置连接 — 凭据自动从 `.env` 加载
- **TLS**:默认启用。仅在使用自签名证书的隔离实验环境中才禁用
- **Webhook**:仅向您自己配置的 URL 发送通知,默认不向第三方服务发送数据
- **代码审查**:建议在生产部署前审查[源代码](https://github.com/zw008/VMware-AIops)和提交历史
- **生产环境安全**:生产环境建议使用只读的 [VMware-Monitor](https://github.com/zw008/VMware-Monitor)。AI Agent 可能误解上下文并执行非预期的破坏性操作 — 已有真实案例表明,缺乏隔离的 AI 驱动基础设施工具可能删除生产数据库和整个环境。VMware-Monitor 在代码级别消除此风险:代码库中不存在任何破坏性函数

### 第 3 步:连接 AI 工具

#### Claude Code(推荐)

```bash
/plugin marketplace add zw008/VMware-AIops
/plugin install vmware-ops
/vmware-ops:vmware-aiops # 完整版
/vmware-ops:vmware-monitor # 只读监控(更安全)
```

#### Gemini CLI

```bash
npm install -g @google/gemini-cli
gemini extensions install ./gemini-extension
gemini
> 显示 ESXi 上所有虚拟机
```

#### Codex CLI

```bash
npm i -g @openai/codex
mkdir -p ~/.codex/skills/vmware-aiops
cp codex-skill/SKILL.md ~/.codex/skills/vmware-aiops/SKILL.md
cp codex-skill/AGENTS.md ./AGENTS.md
codex --enable skills
```

#### Aider(支持本地模型)

```bash
pip install aider-chat
# 云端
aider --conventions codex-skill/AGENTS.md
# 本地 Ollama
aider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b
```

#### Trae IDE

将规则文件复制到项目的 `.trae/rules/` 目录:

```bash
mkdir -p .trae/rules
cp trae-rules/project_rules.md .trae/rules/project_rules.md
```

Trae IDE 的 Builder Mode 会在启动时自动读取 `.trae/rules/` 下的 Markdown 文件。

> 注意:也可以在 Trae IDE 中安装 Claude Code VS Code 扩展,直接使用 `.claude/skills/` 格式。

#### Kimi Code CLI

```bash
# 复制技能文件到 Kimi skills 目录
mkdir -p ~/.kimi/skills/vmware-aiops
cp kimi-skill/SKILL.md ~/.kimi/skills/vmware-aiops/SKILL.md
```

#### MCP 服务器(Smithery / Glama / Claude Desktop)

MCP 服务器通过 [Model Context Protocol](https://modelcontextprotocol.io) 将 VMware 操作暴露为工具,兼容所有 MCP 客户端(Claude Desktop、Cursor 等)。

```bash
# 通过 uvx 运行(推荐 — 适用于 uv tool install 安装方式)
uvx --from vmware-aiops vmware-aiops-mcp

# 指定配置路径
VMWARE_AIOPS_CONFIG=/path/to/config.yaml uvx --from vmware-aiops vmware-aiops-mcp
```

**Claude Desktop 配置** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"vmware-aiops": {
"command": "uvx",
"args": ["--from", "vmware-aiops", "vmware-aiops-mcp"],
"env": {
"VMWARE_AIOPS_CONFIG": "/path/to/config.yaml"
}
}
}
}
```

**通过 Smithery 安装**:
```bash
npx -y @smithery/cli install @zw008/VMware-AIops --client claude
```

---

#### 独立 CLI(无需 AI)

```bash
source .venv/bin/activate
vmware-aiops vm power-on my-vm --target home-esxi
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --target home-esxi
vmware-aiops datastore browse datastore1 --target home-esxi
```

---

## 国内云端模型

| 模型 | 说明 | 配合工具 |
|------|------|---------|
| DeepSeek | 性价比高,编程能力强 | Aider / Continue |
| 通义千问 Qwen | 阿里云,有免费额度 | Aider / Continue |
| 豆包 Doubao | 字节跳动 | Aider / Trae IDE |

```bash
# DeepSeek
export DEEPSEEK_API_KEY="your-key"
aider --conventions codex-skill/AGENTS.md --model deepseek/deepseek-coder

# 通义千问
export DASHSCOPE_API_KEY="your-key"
aider --conventions codex-skill/AGENTS.md --model qwen/qwen-coder-plus
```

---

## 本地模型(Aider + Ollama)

完全离线运行,无需云端 API,完全隐私:

```bash
brew install ollama # macOS
ollama pull qwen2.5-coder:32b # 下载模型(~20GB)
ollama serve # 启动服务

aider --conventions codex-skill/AGENTS.md --model ollama/qwen2.5-coder:32b
```

---

## CLI 命令参考

```bash
# 环境诊断
vmware-aiops doctor # 检查环境、配置、连通性
vmware-aiops doctor --skip-auth # 跳过 vSphere 认证检查(更快)

# MCP 配置生成
vmware-aiops mcp-config generate --agent goose # 生成 Goose 配置
vmware-aiops mcp-config generate --agent claude-code # 生成 Claude Code 配置
vmware-aiops mcp-config list # 列出所有支持的 Agent

# 虚拟机操作
vmware-aiops vm power-on|power-off|reset|suspend
vmware-aiops vm create --cpu 4 --memory 8192 --disk 100
vmware-aiops vm delete --confirm
vmware-aiops vm reconfigure --cpu 4 --memory 8192
vmware-aiops vm snapshot-create|snapshot-list|snapshot-revert|snapshot-delete
vmware-aiops vm clone --new-name
vmware-aiops vm migrate --to-host
vmware-aiops vm set-ttl --minutes 60 # 60 分钟后自动删除
vmware-aiops vm cancel-ttl # 取消 TTL
vmware-aiops vm list-ttl # 查看所有 TTL
vmware-aiops vm clean-slate --snapshot baseline # 恢复基线快照(双重确认)

# Guest Operations(需要 VMware Tools)
vmware-aiops vm guest-exec my-vm --cmd /bin/bash --args "-c 'whoami'" --user root
vmware-aiops vm guest-upload my-vm --local ./script.sh --guest /tmp/script.sh --user root
vmware-aiops vm guest-download my-vm --guest /var/log/syslog --local ./syslog.txt --user root

# Plan → Apply(多步操作编排)
vmware-aiops plan list # 查看待执行/失败的 plan

# 部署
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --datastore ds1 # 从 OVA 部署
vmware-aiops deploy template golden-ubuntu --name new-vm # 从模板部署
vmware-aiops deploy linked-clone --source base-vm --snapshot clean --name test-vm # 链接克隆(秒级)
vmware-aiops deploy iso my-vm --iso "[datastore1] iso/ubuntu-22.04.iso" # 挂载 ISO
vmware-aiops deploy mark-template golden-vm # 转为模板
vmware-aiops deploy batch-clone --source base-vm --count 5 --prefix lab # 批量克隆
vmware-aiops deploy batch deploy.yaml # 从 YAML 批量部署

# 集群
vmware-aiops cluster info my-cluster # 集群详情
vmware-aiops cluster create my-cluster --ha --drs # 创建集群
vmware-aiops cluster delete my-cluster # 删除集群(双重确认)
vmware-aiops cluster add-host my-cluster --host esxi-03 # 添加主机(双重确认)
vmware-aiops cluster remove-host my-cluster --host esxi-03 # 移除主机(双重确认)
vmware-aiops cluster configure my-cluster --ha --drs # 配置 HA/DRS(双重确认)

# 数据存储(浏览和扫描镜像保留在 aiops;iSCSI/vSAN 已迁移至 vmware-storage)
vmware-aiops datastore browse datastore1 --path "iso/" # 浏览数据存储
vmware-aiops datastore scan-images --target home-esxi # 扫描所有数据存储的镜像

# 扫描与守护进程
vmware-aiops scan now [--target ]
vmware-aiops daemon start|stop|status

# 配套技能负责的操作:
# vmware-monitor: 资源清单、告警、事件、传感器
# vmware-storage: 数据存储管理、iSCSI、vSAN
# vmware-vks: Tanzu/TKC 集群生命周期
```

---

## 项目结构

```
VMware-AIops/
├── .claude-plugin/ # Claude Code 市场清单
├── plugins/vmware-ops/ # Claude Code 插件
│ └── skills/
│ ├── vmware-aiops/SKILL.md # 完整运维技能
│ └── vmware-monitor/SKILL.md # 只读监控技能
├── skills/ # Skills 索引(npx skills add)
│ └── vmware-aiops/
│ ├── SKILL.md # 精简版技能(渐进式展开)
│ └── references/ # 按需加载的详细文档
│ ├── capabilities.md # 完整功能表格
│ ├── cli-reference.md # 完整 CLI 参考
│ └── setup-guide.md # 安装、安全、AI 平台
├── vmware_aiops/ # Python 后端
│ ├── config.py # 配置管理
│ ├── connection.py # 多目标连接(pyVmomi)
│ ├── cli.py # CLI(双重确认)
│ ├── ops/ # 运维操作
│ │ ├── inventory.py # VM、主机、数据存储、集群
│ │ ├── health.py # 告警、事件、传感器
│ │ ├── vm_lifecycle.py # VM 生命周期管理
│ │ ├── vm_deploy.py # OVA、模板、链接克隆、批量部署
│ │ └── datastore_browser.py # 数据存储浏览、镜像发现
│ ├── scanner/ # 日志扫描守护进程
│ └── notify/ # 通知(JSONL + Webhook)
├── skill/SKILL.md # Claude Code 独立技能
├── gemini-extension/GEMINI.md # Gemini CLI 扩展
├── codex-skill/AGENTS.md # Codex / Aider / Continue
├── trae-rules/project_rules.md # Trae IDE 规则
├── kimi-skill/SKILL.md # Kimi Code CLI 技能
├── mcp_server/ # MCP 服务器
│ ├── server.py # MCP 工具定义
│ └── __main__.py # 入口
├── smithery.yaml # Smithery 市场配置
├── config.example.yaml
└── pyproject.toml
```

## 相关项目

| Skill | 范围 | 工具数 | 安装 |
|-------|------|:-----:|------|
| **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读监控、告警、事件 | 8 | `uv tool install vmware-monitor` |
| **[vmware-aiops](https://github.com/zw008/VMware-AIops)** | VM 生命周期、部署、Guest Ops、集群、数据存储浏览 | 31 | `uv tool install vmware-aiops` |
| **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN | 11 | `uv tool install vmware-storage` |
| **[vmware-vks](https://github.com/zw008/VMware-VKS)** | Tanzu 命名空间、TKC 集群生命周期 | 20 | `uv tool install vmware-vks` |

---

## 问题反馈与贡献

如果遇到任何报错或问题,请将错误信息、日志或截图发送至 **zhouwei008@gmail.com**。欢迎加入我们,一起维护和改进这个项目!

If 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!

## 许可证

MIT