VCF 9.0/9.1 CASA API自动化上传安装PAK包完整实操指南
本文基于William Lam官方运维速报拆解VCF Operations原vRealize Operations两套PAK升级自动化API方案分步上传手动安装、一键静默上传自动部署完整给出curl原生调用命令、参数释义、进度轮询接口解决图形界面两步操作、长时间等待无法批量自动化痛点适配VCF 9.0/9.1、VVF全套私有云环境提供可直接运行Bash完整自动化脚本覆盖上传、部署、循环监控、失败重试全流程。通过CASA集群管理REST API可完全无人值守完成VCF Operations PAK升级方案1分步模式对齐网页后台操作逻辑适合分步调试方案2 silent_install静默接口一键上传自动安装搭配CLOBBER覆盖参数跳过重复校验适合CI/CD流水线两套接口均返回PakID作为唯一任务标识调用/status端点可持续轮询升级进度支持批量脚本、Ansible集成大幅减少人工界面操作时长。一、前置基础说明1、接口归属与访问前提API归属CASACluster and Slice AdministrationVCF Operations集群管理接口访问地址为VCF Operations主节点FQDN端口443 权限要求admin账号具备集群升级管理员权限 证书参数-k 跳过自签名证书校验生产环境建议导入根CA移除该参数 文件格式仅官方后缀.pak系统升级包支持上传。2、两种自动化方案核心差异方案执行流程适用场景关键参数Option1 分步上传安装上传文件→获取PakID→调用安装接口→轮询进度调试、分步校验、需确认包完整性再部署无额外URL参数Option2 静默一键部署上传自动安装合并单请求返回PakID直接监控自动化流水线、批量运维、无人值守窗口pak_handling_adviceCLOBBER、force_content_updatetrue参数释义1. pak_handling_adviceCLOBBER存在同名旧PAK包直接覆盖无需手动删除2. force_content_updatetrue强制校验并执行组件更新跳过预校验拦截。二、方案1分步上传、手动安装对齐UI界面逻辑1、第一步上传PAK文件返回PakIDcurl -X POST -F contentsOperations-Upgrade-9.1.0.0200.25500347.pak;typemultipart/form-data \ -k -u admin:VMware1!VMware1! \ https://vcf01.vcf.lab/casa/upgrade/cluster/pak/reserved/operation/upload执行成功返回PakID示例vRealizeOperationsManagerEnterprise-9100200255003472、第二步使用PakID触发安装任务curl -X POST -k -u admin:VMware1!VMware1! \ https://vcf01.vcf.lab/casa/upgrade/cluster/pak/vRealizeOperationsManagerEnterprise-910020025500347/operation/install3、第三步循环轮询升级进度curl -X GET -k -u admin:VMware1!VMware1! \ https://vcf01.vcf.lab/casa/upgrade/cluster/pak/vRealizeOperationsManagerEnterprise-910020025500347/status返回JSON包含stateRUNNING/SUCCESS/FAILED、progress百分比、错误日志字段。三、方案2silent_install静默一键上传自动安装流水线首选单条curl合并上传与部署无需二次调用安装接口curl -X POST -F contentsOperations-Upgrade-9.1.0.0400.25541550.pak;typemultipart/form-data \ -k -u admin:VMware1!VMware1! \ https://vcf01.vcf.lab/casa/upgrade/cluster/pak/reserved/operation/silent_install?pak_handling_adviceCLOBBERforce_content_updatetrue请求完成直接返回PakID立刻调用/status监控升级状态。进度查询通用接口同方案1curl -X GET -k -u admin:VMware1!VMware1! \ https://vcf01.vcf.lab/casa/upgrade/cluster/pak/[此处替换返回的PakID]/status四、完整可运行Bash自动化脚本无人值守全流程#!/bin/bash # 环境变量配置 VCF_OPS_FQDNvcf01.vcf.lab ADMIN_USERadmin ADMIN_PWDVMware1!VMware1! PAK_FILE./Operations-Upgrade-9.1.0.0400.25541550.pak # 1、静默一键上传并自动安装捕获PakID echo 开始上传并静默部署PAK升级包... RESP$(curl -s -X POST -F contents$PAK_FILE;typemultipart/form-data \ -k -u $ADMIN_USER:$ADMIN_PWD \ https://$VCF_OPS_FQDN/casa/upgrade/cluster/pak/reserved/operation/silent_install?pak_handling_adviceCLOBBERforce_content_updatetrue) # 提取PakID接口返回纯字符串ID PAK_ID$(echo $RESP | tr -d ) echo 获取升级任务PakID: $PAK_ID # 2、循环轮询升级进度 while true; do STATUS_RAW$(curl -s -k -u $ADMIN_USER:$ADMIN_PWD \ https://$VCF_OPS_FQDN/casa/upgrade/cluster/pak/$PAK_ID/status) STATE$(echo $STATUS_RAW | grep -o state:[^]* | cut -d -f4) PROGRESS$(echo $STATUS_RAW | grep -o progress:[0-9]* | cut -d: -f2) echo 当前升级状态:$STATE 进度:$PROGRESS% if [ $STATE SUCCESS ]; then echo ✅ PAK升级全部完成 break fi if [ $STATE FAILED ]; then echo ❌ 升级任务失败完整日志$STATUS_RAW exit 1 fi sleep 30 done脚本说明每30秒轮询一次进度成功自动退出失败打印完整日志终止任务适配定时维护窗口自动执行。五、生产环境落地规范账号安全脚本禁止明文存储密码生产改用API令牌、Ansible加密变量证书优化内部私有CA环境移除curl -k参数导入信任根证书前置校验升级前先调用集群健康API确认所有VCF Operations节点Online版本约束该CASA静默接口仅VCF 9.0、9.1可用8.x旧版无silent_install端点离线环境提前将PAK文件上传至执行脚本服务器保证本地文件路径可访问。六、常见报错排查1、401 Unauthorizedadmin账号密码错误或账号无集群升级权限登录后台分配Lifecycle管理员角色。2、400 Bad Request1、multipart/form-data文件路径不存在2、PAK包损坏/版本不匹配3、URL参数符号未用单引号包裹转义。3、状态返回FAILED1、集群存在离线数据节点2、磁盘空间不足3、前置版本跨度过大不支持直刷9.1先过渡中间PAK查看status返回完整errorMessage字段定位根因。4、文件上传超时大PAK包建议内网高速链路执行拆分上传分段逻辑或延长脚本等待间隔。七、运维拓展集成方案1、Ansible将Bash脚本封装shell模块批量升级多套VCF私有云Operations组件 2、CI/CD流水线GitLab CI/Jenkins维护窗口自动拉取新版PAK执行静默升级并推送结果告警 3、监控联动升级成功后调用监控API校验服务进程失败推送邮件/企业微信告警 4、批量升级循环遍历多台VCF Operations FQDN串行执行升级任务。八、全文总结依托VCF Operations内置CASA集群管理REST API提供分步调试、静默一键两套PAK自动化升级方案silent_install接口搭配CLOBBER覆盖参数实现上传部署合并执行适配自动化运维流水线通过/status端点持续轮询任务状态配套完整可直接运行Bash无人值守脚本支持VCF 9.0/9.1、VVF全栈私有云替代网页后台人工两步操作大幅缩短升级维护工时适配批量集群、定时维护窗口自动化落地。