VMware ESXI-standalone automation skill — VMware ESXI 独立自动化技能
v1.0.2在vmctl已经安装并且代理需要立即运行安全的安装后检查和首次生命周期操作而无需猜测时使用。
运行时依赖
安装命令
点击复制技能文档
vmctl 安装后操作概述 本技能定义了在Hermes主机上安装vmctl后代理应该执行的操作。 目标:快速验证vmctl是否正常运行,运行安全的smoke测试,清除artifact, 并以操作员友好的形式报告状态。 安装源(由操作员执行): 仓库:https://github.com/bashrusakh/vmctl 最新发布页面:https://github.com/bashrusakh/vmctl/releases/latest 重要:这是一个安装后技能。如果vmctl未安装,代理必须停止并要求操作员从上述仓库/发布链接安装。不要尝试引导安装。如果vmctl缺失,停止并重定向操作员到仓库/发布安装文档。 何时使用 vmctl刚刚安装或重新安装。 ESXi/助手凭据已经配置。 操作员询问:“运行测试”,“检查安装后”,“为什么不起作用”。 不适用于: 引导安装本身; 修改ESXi主机帐户/角色; 使用非测试名称的生产VM配置。 默认执行模式 以普通vmctl CLI(无特权升级或强制用户切换)运行。 工作目录:/opt/hermes-vmctl 不要猜测值;使用安装程序已部署的配置/密钥。 运行时要求 所需二进制文件:vmctl必须在PATH中可用。 所需配置路径:/opt/hermes-vmctl/config/vmctl.yaml。 所需状态路径:/opt/hermes-vmctl/state和/opt/hermes-vmctl/state/deleted。 所需凭据上下文:ESXi/助手凭据已经由安装程序配置。 最小权限和凭据范围 最小所需操作:mode、preflight、doctor、list、create、status、delete、purge、recover。 本技能不得用于帐户/角色管理或引导安装。 预期凭据范围应仅限于vmctl助手工作流和测试VM生命周期操作。 更喜欢仅测试VM名称(vmctl-test-)并避免触摸非测试资源,除非操作员明确要求。 快速参考 # 基线检查 vmctl mode vmctl preflight vmctl doctor vmctl list --all # 恢复状态漂移 vmctl recover --dry-run vmctl recover --apply 过程 第1阶段 — 强制健康门 按顺序运行: vmctl mode vmctl preflight vmctl doctor vmctl list --all 规则: 如果preflight或doctor为红色 -> 停止并报告阻塞器。 如果list --all显示来自旧运行的挂起/失败,则在新create-tests之前恢复/清理。 第2阶段 — 安全smoke创建测试 仅使用测试名称:vmctl-test-<目的>-<时间戳> 最小smoke命令: vmctl create \ --name vmctl-test-smoke-<时间戳> \ --template alma10 \ --cpu 2 \ --ram-mb 4096 \ --disk-gb 40 \ --user hermes \ --ssh-key-file /tmp/vmctl_test_key.pub 然后: vmctl status 成功标准: 状态为ready IPv4存在 create/status无异常 第3阶段 — 清理策略 除非操作员要求保留,否则在smoke运行后删除和清除测试VM。 vmctl delete --force 重要:purge使用已删除的墓碑名称,而不是原始VM名称。 # 发现墓碑 python3 - <<'PY' 导入glob,os vm = '' paths = glob.glob('/opt/hermes-vmctl/state/deleted/.json') c = [p for p in paths if vm in os.path.basename(p)] 如果c: c.sort(key=os.path.getmtime, reverse=True) 打印(os.path.basename(c[0])[:-5]) PY vmctl purge 恢复流程(如果存在状态漂移) 如果ESXi管理VM但状态缺失: vmctl recover --dry-run vmctl recover --apply 然后再次运行delete/purge。 操作员输出格式 报告简洁的事实: preflight:通过/失败 doctor:通过/失败 create:通过/失败 + VM名称 cleanup:已删除 + 已清除 / 被阻塞的残余检查:recover --dry-run操作数 常见陷阱 使用来自旧文档的硬编码升级包装器运行命令。 使用原始VM名称清除 -> 未找到已删除的墓碑。 重用过时的测试名称 -> 克隆/文件已经存在错误。 将孤立的数据存储文件夹视为vmctl管理的状态。 验证检查清单 mode确认助手仅有效模式。 preflight为绿色。 doctor为绿色。 smoke创建达到就绪状态。 测试VM通过delete --force删除。 墓碑通过已删除的名称清除。 recover --dry-run无意外操作。