Nutanix-AIops 是一个社区维护的开源项目,为 Nutanix Prism Central v4 REST API 提供受治理的 AI 运维(AI-ops)能力。项目与 Nutanix 无关联、未获其背书或赞助,采用 MIT 许可证。
用途
该工具面向需要以自动化、可审计方式操作 Nutanix Prism Central 的场景,覆盖集群、主机、虚拟机(AHV 与 ESXi)、存储、网络、目录、数据保护/灾难恢复、告警、LCM 升级和容量等管理任务。它强调“受治理”:所有操作都会被记录,并提供安全护栏,但不替用户决定某次写入是否被允许——这取决于智能体的判断或所连接账户的权限。
主要能力
- 自动 ETag / If-Match:v4 API 在更新或删除时必须携带实体当前的 ETag,否则会被拒绝。该工具会自动获取并发送 If-Match,避免这一常见陷阱。
- 自动分页:列表工具会遍历所有 v4 分页,并返回包含 returned、limit、truncated 的信封结构,使被截断的读取结果能自我说明,而不是看起来像完整清单。
- 缺失不等于空值:Prism Central 未返回的字段以 null 返回,而非空字符串,保持两种事实的区分。
- 混合虚拟化平台虚拟机列表:vm_list 可同时返回同一 Prism Central 下的 AHV 和 ESXi 虚拟机,适合虚拟化迁移场景。
- 治理框架:统一审计日志、令牌/调用预算保护、描述性风险等级标签、撤销令牌记录、提示注入清理,并对破坏性写入支持 dry-run 和双重确认。
- 诊断与根因分析:cluster_health_rca 对整个环境进行排名,按最差优先列出降级的容错状态、超过 80%(警告)/90%(严重)的存储池和容器、不健康或缺失的节点,每项发现都引用触发它的实测百分比或原始 Prism 状态。alert_triage_rca 按严重级别分组活动告警并计数,标记未确认的严重告警,并显示最久未解决告警及其存在时长。两者均为只读(risk_level="low")且确定性——无时钟、无随机性,相同输入产生相同结果。analyze_alert 在单个告警层面补充,将告警与相关事件关联,给出可能原因和建议操作摘要。
- 高风险写入:vm_delete、vm_migrate、storage_container_delete、subnet_delete、snapshot_delete、snapshot_restore、pd_failover、image_delete、lcm_update 支持 dry_run,并在 CLI 下支持双重确认。
使用方式
作为 Claude Code 插件
一次安装即可为智能体提供技能和 MCP 服务器。MCP 服务器通过 uv 获取,并固定到插件声明的包版本,因此审计行可追溯到写入它的代码。凭据仍需通过 nutanix-aiops init 配置。
作为 OpenClaw 插件
同一捆绑包发布在 ClawHub 上,一次安装同时提供技能及其 MCP 服务器。安装后需重启 OpenClaw 网关以加载插件。MCP 服务器通过 uv 获取并固定到该确切版本,因此 uvx 必须在 PATH 中;否则技能仍会安装,但会报告“Visible to model: no”。凭据配置方式相同。
作为 CLI 或独立 MCP 服务器
可作为 MCP 服务器(stdio)运行。CLI 命令包括:init、overview、doctor、mcp;cluster list/health/hosts/util;vm list/get/power/delete/migrate(delete 和 migrate 支持 --dry-run 和双重确认);diagnose cluster-health、diagnose alert-triage;secret set/list/rm/migrate/rotate-password。CLI 是便捷子集,完整的 51 个工具面通过 MCP 服务器提供。
治理机制
每个 MCP 工具都经过内置的 @governed_tool 框架:
- 审计:每次调用(参数、结果、状态、耗时、风险等级以及操作者提供的审批人/理由)都记录到 ~/.nutanix-aiops/audit.db(可通过 NUTANIX_AIOPS_HOME 重定位)。CLI 写入与 MCP 路径相同的行,没有未审计的入口点。
- 失控保护:作为安全后备而非授权门,同一调用在紧密循环中反复触发会触发断路器。可通过 NUTANIX_RUNAWAY_MAX=0 禁用;可选硬上限通过 NUTANIX_MAX_TOOL_CALLS / NUTANIX_MAX_TOOL_SECONDS 设置。
- 撤销记录:可逆写入会根据获取的前置状态记录反向描述符(vm_update → 先前的 CPU/内存,vm_migrate → 先前的主机)。
- 风险等级:审计行上基于 risk_level 的描述性标签,不构成门禁。
凭据存储
Prism Central 密码加密存储在 ~/.nutanix-aiops/secrets.enc(Fernet + scrypt),磁盘上绝不明文。通过 NUTANIX_AIOPS_MASTER_PASSWORD(MCP/CI)或交互式提示(CLI)解锁。非机密连接信息(host、port、username、verify_ssl)位于 ~/.nutanix-aiops/config.yaml。旧版明文环境变量 NUTANIX_<TARGET>_PASSWORD 可作为后备。
注意:Prism Central 账户需要 REST API 权限,而不仅仅是 Web UI 访问权限。doctor 的 REST-RBAC 预检可提前发现此问题。
适用场景
- 需要对 Nutanix Prism Central 进行自动化运维并保留完整审计轨迹的团队。
- 使用 AI 智能体(如 Claude Code、OpenClaw)执行 Nutanix 管理任务的场景。
- 需要诊断集群健康、告警分诊和根因分析的运维人员。
- 在 Nutanix Community Edition(CE)上免费自测:单节点 CE 集群 + X-Small Prism Central 虚拟机。
限制
- 验证状态:所有行为目前仅针对模拟的 v4 REST 响应进行验证,尚未在真实 Prism Central 上运行。最快的实机检查是 nutanix-aiops doctor。完整实机验证清单见 docs/VERIFICATION.md。
- 验证最少的路径:LCM 更新(lcm_update)、保护域故障转移(pd_failover)以及 ESXi 虚拟机列表尤其需要实机验证。
- 本版本范围外:IAM/用户/角色、Files/Objects/Volumes 服务、报告、X-Play 剧本,以及 Prism Central v4 之外的任何内容。
- 工具不决定写入是否被允许,没有只读开关、策略文件或审批门可配置;权限由所连接账户的角色决定。
- 密码通过导出变量传递时,可被该 shell 启动的所有进程读取并记录在 shell 历史中;在共享或长期主机上建议使用交互式提示或从密钥管理器注入。