在企业私有云落地场景中大量核心业务集群出于安全合规要求会部署在物理隔离、断网离线Air-gapped的网络环境中。这种部署模式下VMware Cloud Foundation 的许可证授权、同步与续期工作无法依托公网自动完成传统手动配置方式步骤繁琐、极易出错且多集群规模化运维场景下一致性难以保障。全新发布的 VCF 9.1 版本针对性优化了 VCF 业务服务控制台BSC与 VCF Operations 运维平台之间的许可证授权工作流重点强化了离线环境的适配能力。同时适配 VCF 9.1 迭代更新的Broadcom.Community.VCFLicensingPowerShell 模块实现了许可证注册、校验、授权、部署、续期的端到端全自动化彻底解决离线环境许可运维痛点完美适配单集群与多集群规模化运维场景。本文将从零起步详细讲解基于 PowerShell 模块在离线环境中完成 VCF 9.1 全套许可证自动化配置的完整实操流程。一、工具准备安装/升级许可自动化模块本次自动化运维依赖专属 PowerShell 模块支持全新安装与旧版本升级两种方式运维人员可根据本地环境选择对应指令快速部署工具依赖全新安装模块指令Install-Module Broadcom.Community.VCFLicensing旧版本升级指令Update-Module Broadcom.Community.VCFLicensing二、前置配置BSC 平台密钥与许可资源创建在执行自动化脚本前需先登录 VCF BSC 管理后台完成基础配置获取对接所需核心参数1. 访问 VCF BSC 官方门户https://vcf.broadcom.com进入【访问管理-OAuth 应用】模块创建 OAuth API 应用记录生成的客户端IDClient ID与客户端密钥Client Secret。2. 在左侧导航栏站点信息图标处查看并记录当前租户的Tenant ID租户ID这是跨平台对接的核心标识。3. 进入【许可证】管理模块按需创建资源配额。本文实操案例中创建两组许可分配256核 VCF 基础授权、256TiB vSAN 存储授权并自定义唯一标签用于后续脚本关联绑定。三、脚本参数初始化根据企业实际 VCF 集群环境初始化脚本核心变量替换本地环境真实信息所有参数需准确填写避免对接失败$VCF_OPERATIONS_HOSTNAMEvcf01.vcf.lab $VCF_OPERATIONS_USERNAMEadmin $VCF_OPERATIONS_PASSWORDVMware1!VMware1! $VCF_BSC_OAUTH_CLIENT_IDXXX $VCF_BSC_OAUTH_CLIENT_SECRETXXX $VCF_BSC_TENANT_IDXXX $VCENTER_HOSTNAMEvc01.vcf.lab $VCF_LICENSE_ENTITLEMENT_NAMEwlam-vcf $VSAN_LICENSE_ENTITLEMENT_NAMEwlam-vsan四、端到端自动化许可部署实操步骤1. 平台登录与本地路径配置定义本地文件存储路径分别建立 VCF Operations 与 VCF BSC 平台连接为后续文件交互、接口调用提供权限支撑$CWD (Get-Location).Path $VCF_OPERATIONS_REGISTRATION_LABEL$VCF_OPERATIONS_HOSTNAME $VCF_LICENSE_FILENAME${VCF_OPERATIONS_HOSTNAME}.lic $VCF_VERIFICATION_FILENAME${VCF_OPERATIONS_HOSTNAME}.verification $VCF_VERIFICATION_FILE${CWD}/${VCF_VERIFICATION_FILENAME} $VCF_LICENSE_FILE${CWD}/${VCF_LICENSE_FILENAME} # 连接VCF Operations平台 Connect-VcfOperations -Fqdn $VCF_OPERATIONS_HOSTNAME -User $VCF_OPERATIONS_USERNAME -Password $VCF_OPERATIONS_PASSWORD # 连接VCF BSC平台 Connect-VcfBsc -ClientId $VCF_BSC_OAUTH_CLIENT_ID -SecretId $VCF_BSC_OAUTH_CLIENT_SECRET2. 下载并修复集群注册文件从 VCF Operations 下载集群注册文件针对 VCF 9.1 版本已知兼容性问题自动修改文件后缀将默认 .data 格式转为 BSC 要求的 .registration 格式适配平台校验规则$DEFAULT_REG_FILENAME Download-VcfOperationsRegistrationFile $REGISTRATION_FILENAME [System.IO.Path]::ChangeExtension($DEFAULT_REG_FILENAME, .registration) Rename-Item $DEFAULT_REG_FILENAME $REGISTRATION_FILENAME3. VCF 集群注册绑定将处理后的注册文件上传至 BSC 平台完成 VCF Operations 集群的租户注册注册成功后会返回唯一集群标识ID自动存入变量供后续调用$VCF_OPERATIONS_REGISTRATION_FILE${CWD}/${REGISTRATION_FILENAME} $VCF_OPERATIONS_BSC_IDRegister-VcfOperations2 -TenantId $VCF_BSC_TENANT_ID -RegistrationFile $VCF_OPERATIONS_REGISTRATION_FILE -Name $VCF_OPERATIONS_REGISTRATION_LABEL4. 双向校验文件交互通过「挑战-应答」机制完成双平台可信校验是离线许可授权的核心环节首先从 BSC 下载校验文件导入至 VCF Operations 生成确认文件再将确认文件回传 BSC完成双向身份可信认证# 下载BSC校验文件 Download-VcfBscVerificationFile -TenantId $VCF_BSC_TENANT_ID -VcfOperationsId $VCF_OPERATIONS_BSC_ID -VerificationFile $VCF_VERIFICATION_FILE # 导入校验文件并生成确认文件 $VCF_OPERATIONS_CONFIRMATION_FILEImport-VcfOperationsVerificationFile -VerificationFile $VCF_VERIFICATION_FILE # 回传确认文件完成认证 $VCF_LICENSE_SERVER_BSC_IDImport-VcfOperationsConfirmationFile -TenantId $VCF_BSC_TENANT_ID -VcfOperationsId $VCF_OPERATIONS_BSC_ID -ConfirmationFile $VCF_OPERATIONS_CONFIRMATION_FILE5. 许可资源关联绑定调取 BSC 平台中提前创建的 VCF、vSAN 许可资源与已注册的 VCF 集群进行关联绑定批量关联所需授权资源$BSC_VCF_LICENSE_ID(Get-VcfBscLicense -TenantId $VCF_BSC_TENANT_ID -Name $VCF_LICENSE_ENTITLEMENT_NAME).id $BSC_VSAN_LICENSE_ID(Get-VcfBscLicense -TenantId $VCF_BSC_TENANT_ID -Name $VSAN_LICENSE_ENTITLEMENT_NAME).id $VCF_BSC_LICENSE_IDS($BSC_VCF_LICENSE_ID,$BSC_VSAN_LICENSE_ID) Set-VcfBscLicense2 -TenantId $VCF_BSC_TENANT_ID -LicenseServerId $VCF_LICENSE_SERVER_BSC_ID -LicenseIds $VCF_BSC_LICENSE_IDS -Operation Associate6. 许可证下载与集群导入关联资源后从 BSC 下载正式许可文件导入至 VCF Operations 平台完成许可文件部署# 下载正式许可文件 $VCF_LICENSE_FILEDownload-VcfBscLicense -TenantId $VCF_BSC_TENANT_ID -VcfOperationsId $VCF_OPERATIONS_BSC_ID -LicenseFile $VCF_LICENSE_FILE # 导入许可至VCF集群 Import-VcfOperationsLicenseFile -LicenseFile $VCF_LICENSE_FILE7. 虚拟机中心许可分配精准匹配对应 vCenter 集群完成 VCF 核心授权与 vSAN 附加授权的最终分配。需要注意附加存储授权需等待核心授权部署完成后再执行若报错可重试操作$VCENTER_ID$((Get-VcfOperationsVcenters2 | where {$_.vCenter -eq $VCENTER_HOSTNAME}).Id) $VCF_LICENSE_ID$((Get-VcfOperationsEntitlements | where {$_.Name -eq $VCF_LICENSE_ENTITLEMENT_NAME}).Id) $VSAN_LICENSE_ID$((Get-VcfOperationsEntitlements | where {$_.Name -eq $VSAN_LICENSE_ENTITLEMENT_NAME}).Id) # 分配VCF核心许可 Set-VcfOperationsLicenseAssignment2 -VcenterId $VCENTER_ID -LicenseId $VCF_LICENSE_ID # 分配vSAN存储许可 Set-VcfOperationsLicenseAssignment2 -VcenterId $VCENTER_ID -LicenseId $VSAN_LICENSE_ID五、许可校验与周期续期操作完成全部配置后可登录 VCF Operations 后台进入【管理-许可-许可与注册】页面查看许可状态为正常激活同时 BSC 平台会显示集群注册合规。VCF 9.1 离线许可拥有180天的使用周期到期前需完成续期操作通过脚本生成集群许可使用报表上传至 BSC 平台核验随后重新下载最新许可文件导入集群即可完成续期。核心操作指令如下# 生成许可使用报表 $VCF_OPERATIONS_USAGE_FILE Usage-vcf01.vcf.lab-xxx.gzip Download-VcfOperationsUsageFile # 上传报表至BSC核验 Import-VcfOperationsUsageFile -TenantId $VCF_BSC_TENANT_ID -UsageFile $VCF_OPERATIONS_USAGE_FILE # 重新下载最新许可完成续期 Download-VcfBscLicense -TenantId $VCF_BSC_TENANT_ID -VcfOperationsId $VCF_OPERATIONS_BSC_ID -LicenseFile $VCF_LICENSE_FILE六、方案价值总结相较于传统手动配置方式这套基于 PowerShell 模块的 VCF 9.1 许可自动化方案完美适配离线隔离环境将数十步繁琐的手动操作整合为标准化脚本流程大幅降低人工失误率。同时统一的自动化流程可无缝适配单集群与多集群运维场景保障大规模私有云环境许可部署的一致性、规范性极大提升企业 VCF 平台许可运维的效率与稳定性是 VCF 9.1 离线环境运维的核心实用方案。